【发布时间】:2018-07-22 01:17:51
【问题描述】:
我对整个生产数据库执行了pg_dump,并尝试将其本地上传到新迁移的干净 Postgres 数据库。当我执行psal db_name < data.sql 时,我会收到这样的错误
insert or update on table "vehicle_vehicle" violates foreign key constraint "vehicle_vehi_vehicle_make_id_265a8146_fk_vehicle_vehiclemake_id"
DETAIL: Key (vehicle_make_id)=(788) is not present in table "vehicle_vehiclemake".
我的问题是:
当尝试加载具有外键的表,而另一个表具有尚未上传的外键关系时,Postgres 是否会停止正在执行的操作并开始加载该表?
加载数据如何解决这个问题?用户是否需要逐表转储数据,一次加载一个?
【问题讨论】:
-
好吧,只是给你一个想法,你可以通过执行
ALTER TABLE table_name DISABLE TRIGGER ALL来禁用外键约束。但不要忘记稍后启用它们。请注意,您可能会弄得一团糟,但如果您确定数据的完整性,那么使用它应该是安全的。
标签: django postgresql relational-database psql