Wie dupliziere ich die Datenbank in postgresql?

14

Ich muss die vorhandene Datenbank einschließlich ihres Schemas und ihrer Struktur in eine andere neue Datenbank duplizieren. Ich brauche dies in der Shell-Befehlsumgebung und nicht in pgadmin. Bitte helfen Sie mir freundlich.

nohup pg_dump exampledb > example-01.sql
createdb -O postgres exampledbclone_01

mein benutzer ist "postgres"

nohup psql exampledbclone_01 < example-01.sql
$ pg_dump mydb > db.sql
$ psql -d newdb -f db.sql
Karunya Suresh
quelle

Antworten:

30

Wenn Sie es innerhalb derselben PostgreSQL-Installation duplizieren möchten und keine aktiv verbundenen Benutzer haben, gibt es eine praktische Verknüpfung:

CREATE DATABASE my_new_database TEMPLATE my_old_database;

oder aus der Schale

createdb -T my_old_database my_new_database;

Sonst werden Sie verwenden müssen pg_dump, createdbund pg_restore, zB

pg_dump -Fc -f olddb.pgdump -d olddb &&\
createdb newdb &&\
pg_restore -d newdb olddb.pgdump

Wenn Sie dies tun, nohupstirbt der Befehl nicht, wenn Sie Ihre SSH-Sitzung verlieren screen.

Craig Ringer
quelle
AwesomeCREATE DATABASE my_new_database TEMPLATE my_old_database;
anjaneyulubatta505
Brillant! Es kopiert nicht nur Struktur, sondern auch Daten!
Foton
@Foton Yep, obwohl Sie verwenden können pg_dumpund pg_restorewenn Sie selektiver sein und nur die Struktur dump (sagen) möchten.
Craig Ringer