将.sql文件加载到Postgres DB时出现约束问题

时间:2018-02-11 21:49:57

标签: django postgresql relational-database psql

我在整个生产数据库上执行了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".

我的问题是:

  1. 当尝试加载具有外键的表,而另一个表具有尚未上载的外键关系时,Postgres是否会停止正在执行的操作并开始加载该表?

  2. 加载数据如何解决此问题?用户是按表转储数据表,并一次加载一个数据表吗?

1 个答案:

答案 0 :(得分:1)

使用pg_restore--clean一起从头开始恢复您的数据库。如果以下是完整转储,则应在设置外键之前插入数据,这样您就不会遇到问题。