2016-11-16 2 views
0

Dies ist, was ich derzeit tun, um eine Datenbank von meinem lokalen Computer auf einen Remote-Server zu kopieren.Ignorieren einer Tabelle in pg_dump und Wiederherstellen

Dump local database: 
pg_dump dbname --clean -U postgres > dumpfile 

Restore remote database: 
psql --single-transaction dbname -U postgres < dumpfile 

Dies macht eine perfekte Replikation.

Wie kann ich dies ändern, um bestimmte Tabellennamen sowohl in der Quelle als auch im Ziel zu ignorieren?

Dies ist nützlich für Tabellen, die Website-Besuche protokollieren. Ich möchte meine vorhandenen Remote-Besuchsprotokolle beibehalten und gleichzeitig meine lokalen "Besuchs" -Logs ignorieren (bei denen ich lediglich meine eigene Website lokal besuche).

+0

dupliziert: http://stackoverflow.com/questions/7359827/creating-a-database-dump-for-specific-tables-and-entries-postgres – McNets

Antwort

3

Mit dem -t Schalter können Sie selektiv sein über das, was Tabellen enthalten:

pg_dump <your switches> -t my_schema.awesome* -f backup.bat postgres 

die nur die Tabellen enthalten wird.

Ebenso die -T Schalter das Gegenteil tun - Dump alles bis auf die Tabellen, die Sie angegeben:

pg_dump <your switches> -t my_schema.lame* -f backup.bat postgres 

können Sie verwenden jeweils mehrfach wechseln auch:

pg_dump <your switches> \ 
    -t my_schema.awesome* \ 
    -t my_schema.amazing* \ 
    -t my_schema.great -f backup.bat postgres 

Beim Wiederherstellen , es wird nicht versuchen, etwas wiederherzustellen, das nicht gesichert wurde, so dass dieser Teil etwas nativ gehandhabt werden sollte.

Verwandte Themen