2009-03-26 14 views
5

Muss ich immer löschen und dann eine Datenbank erstellen, um sie aus einer pg_dump-Datei wiederherzustellen? Wenn ich die Datenbank nicht lösche, werden die Daten, die wiederhergestellt werden, zu den aktuellen Daten in der DB hinzugefügt, selbst wenn einige Register bereits in der Datenbank vorhanden sind (so dass die Daten dupliziert werden).Wiederherstellen der Postgresql-Datenbank

Antwort

6

Sie können die Option -c (--clean) beim Ausführen von pg_dump verwenden, damit der Dump die richtigen DROP ... -Befehle enthält.

Aber generell würde ich vorschlagen, den „harten Weg“ zu gehen:

dropdb ... 
createdb ... 
psql -d ... -f dump.file 

Auf diese Weise können Sie sicher sind, dass es keine „left overs“ aus, was vorher in der Datenbank war.

+0

Eine andere gute Sache über Ihre Lösung ist, dass Sie keine VACUUM FULL machen müssen, um den Platz der gelöschten Datensätze zurückzufordern. – bortzmeyer