TL;DR ワンライナー
pg_restore -L <(pg_restore -l /path/to/db/dump | grep -v 'TABLE DATA public table_to_ignore') -d db_name_where_to_restore /path/to/db/dump
以下は、復元の「todo リスト」を返します。
pg_restore -l /path/to/db/dump
以下は、除くすべてを返しますtable_to_ignore
(grep
オプション-v
は、一致を逆にします):
pg_restore -l /path/to/db/dump | grep -v 'TABLE DATA public table_to_ignore'
これは、入力 todo リストを期待するpg_restore
オプションと組み合わせて使用できます。-L
pg_restore -L <(pg_restore -l /path/to/db/dump | grep -v 'TABLE DATA public table_to_ignore') -d db_name_where_to_restore /path/to/db/dump
無視するテーブルが複数ある場合は、次のように grep できます。
pg_restore -l /path/to/db/dump | grep -vE 'TABLE DATA public (table_1|table_2|table_3)'
拡張正規表現を使用する-E
ためのオプションがあることに注意してください。grep