迁移 postgres 数据库的正确方法?

Proper way to migrate a postgres database?

我在 django 中有一个开发版本和一个生产版本 运行。

我最近开始用大量数据填充它,发现 django loaddata 会在将所有内容添加到数据库之前尝试将所有内容加载到内存中,而我的文件对于它来说太大了。

将数据从开发机器推送到生产机器的正确方法是什么?

我做到了...

pg_dump -U user -W db ./filename.sql

然后在生产服务器上我做了...

psql dbname < filename.sql

它似乎有效,所有数据都在那里,但出现了一些错误,例如

relation xxx already exists
constrain xxx for relation xxx already exists

其中有很多,但就像我说的那样,一切似乎都在那里。这是正确的做法吗?

编辑:我在生产机器上有包含信息的数据库,我不想在导入前截断表。

这是我使用的脚本:

 pg_dump -d DATABASE_NAME -U postgres --format plain --inserts > /FILE.sql

编辑:正如您在评论中所说,您不想在导入前截断表,您不能将这种类型的导入到您的生产数据库中。我建议在导入开发数据库转储之前清空生产数据库。