我有一个大型数据库,有700多个表,大小约为。 23GB并且我正在尝试将此数据库导出到测试环境,事情就是当我执行恢复它不包括任何外键约束时,此刻我无法弄清楚为什么确切但似乎数据本身是正确的,所有表,PK,函数和视图也都被恢复,所以唯一剩下的是外键,postgres日志不会显示错误。
我一直在谷歌上搜索这几天,没有运气。而且我很确定这不是正确的方法,但我现在已经完成所有这些,所以我只是为测试目的而试一试,你永远不会知道。
如此简单明了,有什么方法可以只将外键导出到脚本然后从这个脚本中恢复它们?
提前致谢。
@Craig:肯定克雷格在这里是详细信息:
导出命令:我正在使用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所包含的所有内容,但在测试机器上没有运气。
答案 0 :(得分:2)
嗯,这是我带来的解决方案
我只使用以下命令对结构进行了备份 pg_dump -h 127.0.0.1 -p 5432 --no-owner -U -s adempiere adempiere> /home/adempiere/adempiere_bkp.sql
参数-s是这里的关键
要恢复,只需在测试计算机上执行以下命令
psql -h 127.0.0.1 -p -d adempiere -U adempiere -f / {PATH TO FILE adempiere_bkp.sql}
瞧,一切都完整了!。
希望它可以帮助别人。 谢谢你的帮助。