PostgreSQL跨版本迁移单表失败:pg_restore报relation不存在错误
PostgreSQL跨版本单表迁移问题解决
排查与解决步骤
1. 验证备份文件内容
先确认备份文件中是否包含目标表的结构定义,执行:
pg_restore -l test_eu3.sql
如果输出列表里没有public.test_eu3的创建语句,说明导出时未包含表结构,需要重新导出。
2. 重新导出单表(若备份遗漏结构)
使用明确的schema+表名重新导出,确保包含完整的表结构和数据:
pg_dump -Fc -U postgres -t public.test_eu3 -f C:\Users\...\Desktop\test_eu3.dump rulings
注:将输出后缀改为.dump是自定义格式的常规命名,便于区分文本格式备份。
3. 修正导入命令
导入时指定完整的表名,确保目标库能识别:
pg_restore -v -U app_admin -d pre_rulings -t public.test_eu3 test_eu3.dump
如果目标库中已存在同名表,可添加--clean参数先清理旧表:
pg_restore -v --clean -U app_admin -d pre_rulings -t public.test_eu3 test_eu3.dump
4. 额外排查点
- 登录源数据库执行
\dt test_eu3,确认表所在的schema是否为public,若不是,导出和导入时替换为实际schema名称 - 确保目标库
pre_rulings中app_admin用户拥有publicschema的创建权限,若没有,执行:GRANT CREATE ON SCHEMA public TO app_admin;
内容的提问来源于stack exchange,提问作者daylyroppo3
相关产品推荐
相关产品推荐

