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

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:

 /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:

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?

versuche doch mal, ein Listfile zu erzeugen, dieses passend zu bearbeiten und dann zu verwenden. - und -L sind Deine Freunde :wink: