datenbank:postgresql_dump
Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
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 (Released: Oktober 2022) 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.1778863811.txt · Zuletzt geändert: von manfred
