Wie bekomme ich pg_dump -s, um den Befehl CREATE DATABASE einzuschließen?

8

Ich habe einen Postgresql-Datenbankserver, der mehrere Datenbanken enthält.

%Vor%

Ich brauche eine Möglichkeit, eine Speicherabbilddatei zu erstellen, die das Schema enthält - einschließlich einer CREATE DATABASE-Anweisung - für die Datenbank, die ich auswerfen möchte.

Bisher habe ich das herausgefunden:

%Vor%

erstellt das Schema nur für die Datenbank test1, enthält jedoch nicht den Befehl CREATE DATABASE. Die einzige Möglichkeit, den Befehl CREATE DATABASE aufzurufen, war:

%Vor%

speichert das Schema für alle Datenbanken. Aber das schließt dann natürlich alle Schemata für alle Datenbanken ein. Auf dem Server, auf dem ich diese Datei wiederherstellen werde, habe ich bereits test3 und test4 ... und ich möchte sie nicht überschreiben, da die Schemas unterschiedlich sind.

Soll der Befehl pg_dump -s den CREATE DATABASE-Befehl enthalten? Oder soll ich einfach den pg_dumpall verwenden und kontrollieren, was ich wiederherstelle? Wenn ja, kannst du mir zeigen, wie ich test1 einfach aus der Dump-Datei wiederherstellen kann?

Danke.

    
dot 15.07.2014, 14:01
quelle

1 Antwort

10

Verwenden Sie die Option --create oder -C

%Vor%
  

Beginnen Sie die Ausgabe mit einem Befehl, um die Datenbank selbst zu erstellen und die Verbindung zur erstellten Datenbank wiederherzustellen. (Bei einem Skript dieses Formulars spielt es keine Rolle, mit welcher Datenbank in der Zielinstallation Sie vor dem Ausführen des Skripts eine Verbindung herstellen.) Wenn --clean ebenfalls angegeben wird, löscht das Skript die Zieldatenbank und erstellt sie neu, bevor sie erneut verbunden wird.

Ссылка

    
Clodoaldo Neto 15.07.2014, 14:04
quelle