我不确定是否应该在Database Administrators'部分或此处发布此问题,因此请告知我是否理解错误。
我有一个基于Django的网站,该网站变化不大。如果需要重新部署或数据库损坏,我将使用python manage.py dumpdata --all --indent=2 > backup.json
并使用loaddata
重新加载数据。 (我知道不排除auth
和content_types
时发生的完整性错误)
因为我在后端使用PostgreSQL,所以我代替使用pg_dump
是“最佳实践”还是“明智的”选择,如果出现问题或需要重新部署,请使用pg_restore
?
因此,dumpdata
转储与所选应用程序(和/或模型)关联的所有数据,并且pg_dump
执行数据库的完整转储。这是同一件事还是我没有想过的根本区别(请注意,我对DBA的经验为0)?
我选择哪个选项,为什么?
最佳答案
使用pg_dump
而不是dumpdata对您来说既是最佳实践,也是更明智的选择。 pg_dump
更快,输出更紧凑(尤其是使用-Fc选项),并且与loaddata相比,pg_restore
可以更快地加载它。最后但并非最不重要的一点是,pg_dump/pg_restore不会发生您提到的完整性错误。
通常pg_dump用于转储整个数据库,但是-t选项允许您一次转储一个或几个表
关于Django的 "dumpdata"或Postgres的 "pg_dump"吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38103438/