11

我不确定这个问题是否应该发布在“数据库管理员”部分或此处,所以如果我弄错了,请告知。

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

由于我在后端使用 PostgreSQL,我是否可以使用“最佳实践”或“更明智” pg_dump,然后pg_restore如果出现问题或者我需要重新部署?

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

我应该选择哪个选项,为什么?

4

1 回答 1

9

pg_dump使用它代替转储数据既是最佳实践,也是更明智的做法。pg_dump速度更快,输出更紧凑(特别是使用 -Fc 选项),并且可以pg_restore比 loaddata 更快地加载。最后但并非最不重要的一点是,您提到的完整性错误不会发生在 pg_dump/pg_restore 中。

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

于 2016-06-30T10:46:37.590 回答