我不确定这个问题是应该发布在Database Administrators'部分还是这里,所以如果我弄错了,请告知。
我有一个基于Django的网站并没有太大变化。我使用python manage.py dumpdata --all --indent=2 > backup.json
并使用loaddata
重新加载数据,如果我需要重新部署或数据库损坏。 (我知道在不排除auth
和content_types
时发生的完整性错误
由于我在后端使用PostgreSQL,使用pg_dump
代替“最佳做法”或“更明智”,然后pg_restore
如果出现问题或我需要重新部署?
因此dumpdata
转储与所选应用程序(和/或模型)关联的所有数据,pg_dump
执行数据库的完全转储。这是同样的事情还是我错过了一个根本的区别(请注意,我有100次DBA经验)?
我选择哪个选项?为什么?
答案 0 :(得分:1)
使用pg_dump
而不是dumpdata是最好的做法和明智之举。 pg_dump
速度更快,输出更紧凑(特别是使用-Fc选项)并且可以使用pg_restore
加载比loaddata更快。最后但并非最不重要的是,pg_dump / pg_restore不会发生你所说的完整性错误。
通常pg_dump用于转储整个数据库,但-t选项允许您一次转储一个或几个表