我有一個使用Postgres數據庫的Django應用程序。我需要能夠備份和恢復數據庫 - 以確保數據不會丟失,並且能夠在測試期間將數據從生產服務器複製到開發服務器。如何備份django數據庫
似乎有是幾個不同的方式來做到這一點:
1)直接與數據庫交互剛。因此,對於Postgres,我可能會使用pg_dumpall和psql編寫腳本。
2)使用Django附帶的「sqlclear/sqlall」命令。
3)使用Django附帶的「dumpdata/loaddata」命令。因此,從要備份的數據庫創建新的固件,然後將它們加載到要恢復的數據庫中。
4)使用像django-dbbackup這樣的Django插件。
我真的不明白這些不同技術的優缺點。
就在我頭頂的選項1是數據庫特定的,而選項3似乎更適合設置初始數據。但我仍然不確定選項4比選項2有什麼優點。
謝謝。
爲什麼不的作者你只是創建一個整個數據庫的副本? http://www.postgresql.org/docs/8.1/static/backup.html#BACKUP-DUMP – karthikr
django-dbbackup甚至可以工作嗎?我清楚地看到那裏的代碼,但沒有機會工作:https://bitbucket.org/mjs7231/django-dbbackup/src/4702d2cf91987fd8a4122b95afca5d42cd477d00/dbbackup/storage/s3_storage.py?at=default#cl-56 – vartec
@karthikr - 這將工作,但這些命令是特定於Postgres的;如果基礎數據庫發生變化,我將不得不重寫腳本。 – trubliphone