Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

Nun muss der aktuelle Wert der idfactory-Sequenz auf beiden Datenbanken festgestellt werden. Dies kann mit einem Toool wie pgadmin festgestelltwerden oder mit der Query:

Codeblock
languagesql
SELECT last_value FROM idfactory;

...

Als neuer Startpunkt für die Neunummerierung der IDs soll der höhere der beiden Werte + 1 verwendet werden. Dafür wird folgendes Statement auf dem Zielsystem (dazu muss eines der beiden Systeme bestimmt werden) ausgeführt.

Codeblock
languagesql
ALTER SEQUENCE idfactory RESTART with <neuer Startwert>;

...

Sollten auf dem Quellsystem fehlende Dokumente (das heißt Referenzen auf nicht existierende Dokumente) existieren, sind diese zunächst zu löschen

Codeblock
languagesql
DELETE FROM polymedics.t_md_importfile WHERE struid_documentfile = 'null';
DELETE FROM polymedics.t_ud_go_document WHERE struid_t_ud_documentfile = 'null';
DELETE FROM polymedics.t_ud_documentfile WHERE struid = 'null';

...

Mit einem weiteren Aufruf werden die verbliebenen Daten (Tabellen sowohl Konfigurations- als auch Userdaten enthalten) exportiert. Diese werden als INSERT-Statements in die Zieldatei geschrieben. Damit ist ein Überspringen bereits existierender Zeilen beim Import möglich, dafür dauert der Im- und Export wesentlich länger als mit COPY-Statements.

Codeblock
languagebash
/usr/bin/pg_dump --file "more_exported_data.sql"  --host "<db host>" --port "<db port>" [--username "<connect with db user>"] [--no-password] --verbose --format=p --blobs --data-only --no-owner --no-privileges --no-tablespaces --no-unlogged-table-data --no-comments --inserts --on-conflict-do-nothing --schema "<schema_name>" -t <schema_name>.t_md_workspace  -t "<schema_name>.t_md_preference*"  "<schema_name>.t_ud_print*" "<db name>"

...

Schließlich können die exportierten Daten mit folgenden Befehlen importiert werden.

Codeblock
languagebash
 psql [-U "<connect with db user>"] -a -v ON_ERROR_STOP=1 -f my_exported_data.sql <DB-name> 
 psql [-U "<connect with db user>"] -a -v ON_ERROR_STOP=1 -f more_exported_data.sql <DB-name>  

...