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

时间:2015-12-04 03:46:53

标签: sql database postgresql pg-dump database-dump

我有一个dev版本和一个在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

并且有很多,但就像我说的一切似乎都在那里。这是正确的方法吗?

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

1 个答案:

答案 0 :(得分:1)

这是我使用的脚本:

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

编辑:正如您在评论中所说,您不希望在导入之前截断表格,您无法在生产数据库中执行此类导入。我建议在导入dev数据库转储之前清空生产数据库。