我有一个包含 700 多个表的大型数据库,大小约为。23GB,我正在尝试将此数据库导出到测试环境,问题是当我进行还原时,它不包含任何外键约束,目前我无法弄清楚原因,但似乎数据本身是正确的,所有表、PK、函数和视图也都恢复了,所以唯一剩下的就是外键,postgres 日志不会显示错误。
我已经在谷歌上搜索了几天,但没有运气。而且我很确定这不是正确的方法,但这是我现在所拥有的,所以我只是为了测试目的而试一试,你永远不会知道。
如此简单明了,有什么方法可以只将外键导出到脚本,然后从该脚本中恢复它们?
提前致谢。
@克雷格:当然克雷格这里有详细信息:
- 我要恢复的机器:x86_64-redhat-linux-gnu 上的 PostgreSQL 8.4.8,由 GCC gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-48) 编译,64 位
- 我进行原始备份的机器:x86_64-redhat-linux-gnu 上的 PostgreSQL 8.4.13,由 GCC gcc (GCC) 4.4.6 2 0120305 (Red Hat 4.4.6-4) 编译,64 位
导出命令:我正在使用 Adepmpiere Adempiere Wiki,它包含自己的 DBExport 和 DBRestore 脚本。
DBExport 脚本具有以下命令:
pg_dump -h 127.0.0.1 -p 5432 --no-owner -U adempiere adempiere > /home/adempiere/adempiere.sql
DBRestore 有以下几行:
psql -h 127.0.0.1 -p 5432 -d adempiere -U adempiere -f /home/adempiere/adempiere.sql
我能够在笔记本电脑上的虚拟机上恢复这个脚本,它恢复了 FK 包含的所有内容,但在测试机器上没有运气。