Tabellen exportieren

Hallo, ich suche nach einer Möglichkeit ganze Tabellen in andere PostgreSQL Datenbanken zu exportieren. Also nehmen wir an ich habe zwei Datenbanken, test1 und test2. Test1 ist voller Daten, test2 dagegen hat nur einige Tabellen, ist aber nicht komplett lehr und soll auch kein Klon von test1 sein. Wie kann ich nun die Tabelle ( nennen wir sie ‘anwender’ ) von test1 nach test2 expoertieren?

Gruss Christian

Was genau meinst du mit exportieren? Einmalig kopieren, im laufenden Betrieb replizieren?

Für ersteres ist pg_dump das Tool deiner Wahl, für letzteres Lösungen wir Slony I.

slony1 sieht hoffnungsvoll aus. Aber wie kann man einzelne Tabellen mit pg_dump in eine andere kopieren oder exportieren. Mit exportieren meinte ich kopieren, so daß sie in anderen Datenbanken zu verfügung stehen. Mit Slony werde ich mich wohl eingehender beschäftigen. Das sieht sehr interessant aus!

Könntest Du mir ein Beispiel geben, wie man einzelne Tabellen mit pg_dump kopiert?

Vielen Dank

Gruss Christian

Nun, da ist die Manpage zu pg_dump recht hilfreich:

-t table
–table=table
Dump data for table only. It is possible for there to be multiple tables with the same name in different schemas; if that is the case, all matching tables will be dumped. Specify both --schema and --table to select just one table.

Du brauchst also einen Befehl, der in etwa so aussieht:

pg_dump --table=dein_tabellenname

um eine einzelne Tabelle zu dumpen. Allerdings solltest du beachten, das er wirklich nur die Tabelle selected, nicht das “Drumherum” wie Constraints, Trigger ect. Also macht es vielleicht Sinn, die Tabelle in der anderen DB zu erstellen und mit --data-only nur die Daten aus der Tabelle zu holen.