Django的"dumpdata"或Postgres的"pg_dump"?

Kee*_*nce 6 database django postgresql database-backups dumpdata

我不确定这个问题是应该发布在数据库管理员部分还是这里,所以请告知我是否错了.

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

由于我在后端使用PostgreSQL,我使用它是"最佳实践"还是"更明智" pg_dump,然后pg_restore如果出现问题或需要重新部署?

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

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

e4c*_*4c5 6

使用它pg_dump代替 dumpdata既是最佳实践,也是更明智的做法。pg_dump速度更快,输出更紧凑(尤其是使用 -Fc 选项时)并且可以pg_restore比 loaddata更快地加载。最后但并非最不重要的是,您所说的完整性错误不会发生在 pg_dump/pg_restore 中。

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

  • 不客气,如果您经常进行转储,您可能需要考虑使用 WAL 归档。https://www.postgresql.org/docs/9.2/static/continuous-archiving.html (2认同)