Ich habe eine Django-Anwendung, die eine Postgres db verwendet. Ich muss in der Lage sein, die db zu sichern und wiederherzustellen - sowohl um sicherzustellen, dass keine Daten verloren gehen, als auch um Daten während des Tests vom Produktionsserver auf den Entwicklungsserver kopieren zu können.Wie man eine django db sichert
Es scheint ein paar verschiedene Möglichkeiten, dies zu tun:
1) Nur mit dem db direkt interagieren. Also, für Postgres könnte ich ein Skript mit pg_dumpall und psql schreiben.
2) Verwenden Sie die Befehle "sqlclear/sqlall", die mit Django geliefert werden.
3) Verwenden Sie die Befehle "dumpdata/loaddata", die mit Django geliefert werden. Erstellen Sie also neue Fixtures aus der Datenbank, die Sie sichern möchten, und laden Sie sie dann in die Datenbank, die Sie wiederherstellen möchten.
4) Verwenden Sie ein Django-Plugin wie django-dbbackup.
Ich verstehe wirklich nicht die Vor-/Nachteile dieser verschiedenen Techniken.
Direkt neben meinem Kopf ist Option 1 db-spezifisch, und Option 3 scheint eher für die Einrichtung von Anfangsdaten geeignet. Aber ich bin immer noch nicht sicher, welche Vorteile Option 4 gegenüber Option 2 hat.
Danke.
warum nicht Sie erstellen nur eine Kopie der gesamten Datenbank? http://www.postgresql.org/docs/8.1/static/backup.html#BACKUP-DUMP – karthikr
funktioniert django-dbbackup überhaupt? Ich sehe klar Code dort, der keine Chance hat zu arbeiten: https://bitbucket.org/mjs7231/django-dbbackup/src/4702d2cf91987fd8a4122b95afca5d42cd477d00/dbbackup/storage/s3_storage.py?at=default#cl-56 – vartec
@ Karthikr - Das würde funktionieren, aber die Befehle sind spezifisch für Postgres; Wenn sich die zugrunde liegende Datenbank ändert, müsste ich das Skript neu schreiben. – trubliphone