pg_restore: Selektives Importieren von custom types (z.B. Enums)

Datenbank Migration (z. B. von MySQL auf PostgreSQL)
Antworten
luba
Neuer Benutzer
Beiträge: 7
Registriert: Do 20. Mai 2010, 17:10

pg_restore: Selektives Importieren von custom types (z.B. Enums)

Beitrag von luba » Do 23. Mär 2017, 13:32

Ausgangslage: Ich habe einen full dump einer unglaublich grossen Datenbank in einem file.

Ziel: Da der restore der ganzen Db ziemlich lange dauern würde und ich eh nur wenige Relationen (e.g. "contact") in meiner Testdatenbank brauche, möchte ich dies mittels der geeigneten selektiven FUnktion machen. Mein command sieht z.B. so aus:

Code: Alles auswählen

 /usr/bin/pg_restore --username=postgres --dbname=testdb --schema-only --table=contact  /tmp/full_db_dump
Nun nutzt meine Tabelle contact aber einen custom type, nämlich eine Enum namens "enum_test_type";

Benutze ich den obenstehenden befehl, dann erhalte ich natürlich:

Code: Alles auswählen

pg_restore: [archiver (db)] could not execute query: ERROR:  type "enum_test_type" does not exist
Nun kann ich aber keine Möglichkeit finden, die types mit pg_restore aus dem Dump zu bekommen. Ich sehe in der Doku die Optionen --table, --trigger, --index etc., aber eine Möglichkeit à la "--type" scheint zu fehlen. Hab ich etwas übersehen?

Notfalls müsste ich die CREATE TYPE Statements aus dem dumpfile per regex extrahieren, möchte dies aber wenn möglich verhindern.

Any ideas?

akretschmer
Erfahrener Benutzer
Beiträge: 7677
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Re: pg_restore: Selektives Importieren von custom types (z.B. Enums)

Beitrag von akretschmer » Do 23. Mär 2017, 13:54

versuche doch mal, ein Listfile zu erzeugen, dieses passend zu bearbeiten und dann zu verwenden. - und -L sind Deine Freunde ;-)
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Antworten