如何在依赖于postgres的容器化django docker中加载sql dump



我在docker上运行Django容器,这取决于Postgres。现在的问题是,当我试图加载postgresql

docker-compose up
cat /tmp/dump.sql |  sudo docker exec -i <container_id> psql -U <user> -d <database_name>

这导入了前几个表,并在终端

上给了我很多错误

一个例子
constraint "table_id" for relation "table_name" already exists

另一个例子
null value in column "column_name" violates not-null constraint

另一
insert or update on table "table_1" violates foreign key constraint "table_id"

我想知道这是否是导入数据的正确方法。另外,我似乎不能删除数据库,因为它已经被django使用了。

注意:我尝试了用postgresql导入数据库的卷。但每次运行django,数据库都会重置。我猜它与迁移有关,但我不能触摸那部分。

这个问题是由于sql转储试图覆盖现有的数据库而引起的。如果你在开发中,一个快速的解决方案是

docker volume rm <volume_name>.

然后运行cat ...命令