Einfach, erstellen Sie zunächst Ihre Datenbank template0
als template database mit:
createdb -U test -T template0 zeus_production
Dann stellen Sie Ihre Dump dieser Datenbank:
psql -U test zeus_production -f /path/to/zeus_development.dump.out
Bei der Wiederherstellung, immer template0
explizit verwenden, wie es ist immer eine leere und unveränderbare Datenbank. Wenn Sie keine explizite Vorlage verwenden, wird PostgreSQL template1
annehmen, und wenn es einige Objekte, wie eine Tabelle oder Funktion, die Ihre Dump-Datenbank bereits hat, erhalten Sie einige Fehler beim Wiederherstellen.
Nichtsdestotrotz, auch wenn Sie in einer Datenbank mit dem gleichen Namen (zeus_development
) wiederherstellen, sollten Sie es auf die gleiche Weise erstellen (oder neu erstellen). Es sei denn, Sie verwendeten -C
Option beim Dumping (oder -C
pg_restore
bei Verwendung eines binären Dump), die ich nicht empfehlen, weil Sie weniger Flexibilität geben (wie die Wiederherstellung auf einem anderen Datenbanknamen).
Randnotiz - es könnte besser sein, eines der binären Dump-Format anstelle von Nur-Text zu verwenden. Es beschleunigt den Dump/Restore-Prozess, reduziert die Größe der Dump-Datei und bietet einige zusätzliche Möglichkeiten, den Wiederherstellungsprozess zu steuern. Details ['here'] (http://www.postgresql.org/docs/current/static/app-pgdump.html) –