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

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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.