Mein Computer ist ausgefallen, aber zum Glück habe ich den Ordner C: \ Programme \ PostgreSQL gesichert.
Jetzt arbeite ich auf einem neuen Computer und möchte die vorherigen Postgres-Datenbanken importieren, die auf der externen Festplatte gespeichert sind.
Ich möchte das Schema einer bestimmten Datenbank exportieren, die sich im Sicherungsordner befindet.
Die Datei PostgreSQL\8.3\data\global\pg_database
enthält Informationen zu Datenbanken und deren OIDs. beispielsweise:
"db1" 20012
"db2" 23456
Ich möchte das Schema von "db1" exportieren.
Es gibt einen Ordner mit dem Namen "20012" im Ordner "PostgreSQL\8.3\data\base\20012"
, der viele Dateien enthält [500 Dateien].
Gibt es eine Möglichkeit, das Schema dieser Datenbank zu exportieren?
Beachten Sie, dass sich alle Postgresql-Datenbankdateien auf einer externen Festplatte befinden und ich das Schema dieser Datenbank in eine SQL-Datei exportieren, diese Datei übernehmen, ausführen und lokal genau dieselbe Datenbank erstellen möchte.
quelle
pg_dump -s databasename > schema.sql
wird das Ergebnis inschema.sql
DateiUnter Linux können Sie dies tun
Vielleicht kann es auch unter Windows funktionieren , wenn Sie es nicht mit pg_dump.exe versuchen
quelle
Ich verwende Postgres 9.6, bei dem ich ein bestimmtes Schema zusammen mit Daten exportieren musste.
Ich habe den folgenden Befehl verwendet:
Wenn Sie nur das Schema ohne Daten möchten, verwenden Sie
s
stattdessen den Schaltern
Unten ist die Schalterliste pg_dump:
quelle
Bitte beachten Sie, dass Sie über ausreichende Berechtigungen verfügen, um auf dieses Schema zuzugreifen. Wenn Sie eine Sicherung als bestimmten Benutzer erstellen möchten, fügen Sie den Benutzernamen in den vorangestellten Befehl ein
-U
quelle
Wenn Sie nur Tabellen erstellen möchten, können Sie dies tun
pg_dump -s databasename | awk 'RS="";/CREATE TABLE[^;]*;/'
quelle
Für Linux: (Daten ausgeschlossen)
pg_dump -s -t tablename databasename > dump.sql
(Für eine bestimmte Tabelle in der Datenbank)pg_dump -s databasename > dump.sql
(Für die gesamte Datenbank)quelle
Richten Sie einen neuen Postgresql-Server ein und ersetzen Sie dessen Datenordner durch die Dateien von Ihrer externen Festplatte.
Sie können dann diesen Postgresql-Server starten und die Daten mit pg_dump abrufen (pg_dump -s nur für das Schema, wie erwähnt).
quelle
Sie sollten so etwas verwenden
pg_dump --schema=your_schema_name db1
, Details finden Sie hierquelle