[英]Django's "dumpdata" or Postgres' "pg_dump"?
我不确定这个问题是否应该发布在“数据库管理员”部分或此处,所以如果我弄错了,请告知。
我有一个基于 Django 的网站,没有太大变化。 如果需要重新部署或数据库损坏,我使用python manage.py dumpdata --all --indent=2 > backup.json
并使用loaddata
重新加载数据。 (我知道不排除auth
和content_types
时发生的完整性错误)
由于我在后端使用 PostgreSQL,对我来说,使用pg_dump
是“最佳实践”还是“更明智”,如果出现问题或者我需要重新部署,然后使用pg_restore
?
因此, dumpdata
转储与所选应用程序(和/或模型)相关的所有数据,而pg_dump
会执行数据库的完整转储。 这是同一件事还是我错过了根本的区别(请注意,我对 DBA 的经验为零)?
我应该选择哪个选项,为什么?
使用pg_dump
而不是dumpdata
既是最佳实践,也是更明智的做法。
这件事情是由很多原因导致的。
pg_dump
比 dumpdata 更快,输出更紧凑(特别是使用 -Fc 选项)。
使用pg_restore
将数据导入数据库也将比 django 的loaddata
更快。
pg_restore 在任何 postgresql 安装中都可用,但 django 及其依赖项必须安装。
最后但并非最不重要的一点是,您提到的完整性错误不会发生在 pg_dump/pg_restore 中。
通常 pg_dump 用于转储整个数据库,但是 -t 选项允许您一次转储一个或几个表
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.