出力をプレーンファイルに入れるpg_dumpコマンドからシーケンスを除外したいのですが。
Command: /Library/PostgreSQL/8.4/bin/pg_dump --Host localhost --port 5433 --username xxx --format plain --clean --inserts --verbose --file /Users/xxx/documents/output/SYSTEM_admin_20131126015325.sql --exclude-table public.table1 --exclude-table public.table2 mydatabase
上記で使用しているテーブルのスイッチがあること、そして pg_dumpのドキュメント に記載されているように、pg_restoreと組み合わせてtar形式でデータベースオブジェクトを有効/無効にできることを知っていますが、pg_restoreは使用しません。
どうもありがとう
グラハム
2つのケースがあります。
除外するシーケンスは、あなたがダンプしているテーブルが所有しています(通常はSERIAL
列)。
参照: postgresにシーケンステーブルのないテーブルをダンプ
短い答え:いいえ、シーケンスを残しておくことはできません。
シーケンスは、ダンプされたテーブルによって所有されていません。次に、--exclude-table
スイッチを使用して、テーブルのように除外できます。
Pg_dumpのドキュメントから:
-Tテーブル--exclude-table = table
Do not dump any tables matching the table pattern.
パターンは-tと同じルールに従って解釈されます
そして-t
について:
-tテーブル
-table = tableDump only tables (or views or sequences or foreign tables) matching table
シーケンスがテーブルによって所有されている場合、次のように-Tを使用してシーケンスとテーブルの両方を除外できます。
pg_dump -T table -T table_id_seq