Benutzer-Werkzeuge

Webseiten-Werkzeuge


datenbank:postgresql_dump

Dies ist eine alte Version des Dokuments!


PostgreSQL Dump

siehe auch: PostgreSQL

Tabellen-Schema auslesen

Nur CREATE TABLE Statements (ohne Daten)
> pg_dump --schema-only \
  -t table1 -t table2 -t table3 -t table4 -t table5 \
  -U postgres -d database_name \
  -f schema_5_tables.sql
Nur CREATE TABLE (ohne Indexe, Constraints, Views)
> pg_dump --schema-only --section=pre-data \
  -t table1 -t table2 -t table3 -t table4 -t table5 \
  -U postgres -d database_name \
  -f create_5_tables_only.sql
Ohne Owner/Privilegien (portabler für andere DB)
> pg_dump --schema-only --no-owner --no-privileges \
  -t table1 -t table2 -t table3 -t table4 -t table5 \
  -U postgres -d database_name \
  -f create_5_tables_no_owner.sql

Tabellen-Schema einspielen

Schema in Ziel-DB einspielen
> psql -U "$USER" -d "$TARGET_DB" -f schema_5_tables.sql

ab PostgreSQL Version 15

Was PostgreSQL 15+ neu bietet HEADER MATCH für den COPY-Befehl, beim einspielen von Daten – automatische Spalten-Validierung.

Die Tabellen müssen bereits existieren!

Daten aus DB dumpen
for TAB in table1 table2 table3 table4 table5
do
	echo "COPY ${TAB} TO 'export_${TAB}.tsv' WITH (FORMAT csv, DELIMITER E'\t', HEADER true)" | sudo -u postgres psql -d database_name
done
zu beachten bei COPY
Ohne Header (mit -t)
  COPY table FROM 'file.tsv' WITH (FORMAT csv, DELIMITER E'\t');
  COPY table FROM 'file.tsv' WITH (FORMAT csv, DELIMITER E'\t', HEADER false);
 
Mit Header (ohne -t) - Wenn du nur Spaltennamen überspringen willst
  COPY table FROM 'file.tsv' WITH (FORMAT csv, DELIMITER E'\t', HEADER true);
 
Mit Header (ohne -t) - Wenn du validieren willst, dass Header-Namen passen
  COPY table FROM 'file.tsv' WITH (FORMAT csv, DELIMITER E'\t', HEADER MATCH);
Daten in DB einspielen
for TAB in table1 table2 table3 table4 table5
do
	echo "COPY ${TAB} FROM 'export_${TAB}.tsv' WITH (FORMAT csv, DELIMITER E'\t', HEADER MATCH true);" | sudo -u postgres psql -d database_name
done
/home/http/wiki/data/attic/datenbank/postgresql_dump.1778863755.txt · Zuletzt geändert: von manfred