Django的“dumpdata”或Postgres的“pg_dump”?

时间:2016-06-29 15:04:46

标签: django database postgresql database-backups dumpdata

我不确定这个问题是应该发布在Database Administrators'部分还是这里,所以如果我弄错了,请告知。

我有一个基于Django的网站并没有太大变化。我使用python manage.py dumpdata --all --indent=2 > backup.json并使用loaddata重新加载数据,如果我需要重新部署或数据库损坏。 (我知道在不排除authcontent_types时发生的完整性错误

由于我在后端使用PostgreSQL,使用pg_dump代替“最佳做法”或“更明智”,然后pg_restore如果出现问题或我需要重新部署?

因此dumpdata转储与所选应用程序(和/或模型)关联的所有数据,pg_dump执行数据库的完全转储。这是同样的事情还是我错过了一个根本的区别(请注意,我有100次DBA经验)?

我选择哪个选项?为什么?

1 个答案:

答案 0 :(得分:1)

使用pg_dump而不是dumpdata是最好的做法和明智之举。 pg_dump速度更快,输出更紧凑(特别是使用-Fc选项)并且可以使用pg_restore加载比loaddata更快。最后但并非最不重要的是,pg_dump / pg_restore不会发生你所说的完整性错误。

通常pg_dump用于转储整个数据库,但-t选项允许您一次转储一个或几个表