Django 的 "dumpdata" 还是 Postgres 的 "pg_dump"?
Django's "dumpdata" or Postgres' "pg_dump"?
我不确定这个问题应该发在 Database Administrators 部分还是这里,所以如果我说错了请指教。
我有一个基于 Django 的网站,变化不大。如果我需要重新部署或数据库损坏,我使用 python manage.py dumpdata --all --indent=2 > backup.json
并使用 loaddata
重新加载数据。 (我知道不排除 auth
和 content_types
时发生的完整性错误)
因为我在后端使用PostgreSQL,所以我是"best practise"还是"wiser"用pg_dump
代替,如果出现问题然后pg_restore
或者我是否需要重新部署?
因此 dumpdata
转储与所选应用(and/or 型号)关联的所有数据,并且 pg_dump
执行数据库的完整转储。这是同一件事还是我遗漏了根本区别(请注意,我在 DBA 方面的经验为 0)?
我应该选择哪个选项,为什么?
使用 pg_dump
而不是 dumpdata 是最佳实践,也是更明智的做法。 pg_dump
更快,输出更紧凑(特别是使用 -Fc 选项)并且使用 pg_restore
可以比 loaddata 更快地加载它。最后但同样重要的是,pg_dump/pg_restore.
不会发生您提到的完整性错误
通常 pg_dump 用于转储整个数据库,但是 -t 选项允许您一次转储一个或几个表
我不确定这个问题应该发在 Database Administrators 部分还是这里,所以如果我说错了请指教。
我有一个基于 Django 的网站,变化不大。如果我需要重新部署或数据库损坏,我使用 python manage.py dumpdata --all --indent=2 > backup.json
并使用 loaddata
重新加载数据。 (我知道不排除 auth
和 content_types
时发生的完整性错误)
因为我在后端使用PostgreSQL,所以我是"best practise"还是"wiser"用pg_dump
代替,如果出现问题然后pg_restore
或者我是否需要重新部署?
因此 dumpdata
转储与所选应用(and/or 型号)关联的所有数据,并且 pg_dump
执行数据库的完整转储。这是同一件事还是我遗漏了根本区别(请注意,我在 DBA 方面的经验为 0)?
我应该选择哪个选项,为什么?
使用 pg_dump
而不是 dumpdata 是最佳实践,也是更明智的做法。 pg_dump
更快,输出更紧凑(特别是使用 -Fc 选项)并且使用 pg_restore
可以比 loaddata 更快地加载它。最后但同样重要的是,pg_dump/pg_restore.
通常 pg_dump 用于转储整个数据库,但是 -t 选项允许您一次转储一个或几个表