在从 恢复数据库时pg_dump
,会产生许多错误,随后整个表都会被忽略。一个例子:
ERROR: insert or update on table "channelproducts" violates foreign key constraint "fk_rails_dfaae373a5"
DETAIL: Key (channel_id)=(1) is not present in table "channels".
Run Code Online (Sandbox Code Playgroud)
有趣的是,我注意到所有这些实例都是由于加载顺序而弹出的。channels
是channelproducts
按字母顺序和在文件中之后,因此我可以理解为什么 postgres 抱怨必须创建一个没有父母的孩子。
警告:外键是由 rails 4.2 自动生成的:我可以从源头上删除问题,但这仍然没有真正解决问题......
版本:PostgreSQL 9.4.4。
psql
如果已经创建了数据库表和列,那么如何从外键约束的情况中恢复?