簡體   English   中英

Django 的“dumpdata”還是 Postgres 的“pg_dump”?

[英]Django's "dumpdata" or Postgres' "pg_dump"?

我不確定這個問題是否應該發布在“數據庫管理員”部分或此處,所以如果我弄錯了,請告知。

我有一個基於 Django 的網站,沒有太大變化。 如果需要重新部署或數據庫損壞,我使用python manage.py dumpdata --all --indent=2 > backup.json並使用loaddata重新加載數據。 (我知道不排除authcontent_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM