web-dev-qa-db-ja.com

pg_dump:一致するスキーマが見つかりませんでした

Cents 6.5で実行されているPostgres 9.4からスキーマをダンプしようとしていますが、エラーが発生します。

pg_dump:一致するスキーマが見つかりませんでした

これが私が実行しているコマンドです:

pg_dump -U postgres -n "OLD-TODELETE-bushes" --verbose site > output_nf

select schema_name from information_schema.schemataを実行すると、スキーマ名が表示されるため、少し混乱しています。

すべてのスキーマに対してpg_dumpを実行すると、期待どおりにOLD-TODELETE-bushesがファイルにダンプされます。

Postgresログにエラーはありません。

誰かアイデアはありますか?

6
Nathan Foley

引用符を"schema_name"から'"schema_name"'に変更してこれを修正しました

参照: pg_dumpは大文字のデータスキームをダンプしません

... Tom Lane 返信

問題は、必要な引用のレベルが2つあることです。1つはシェル用で、もう1つはSQL用です。あなたが書いたように、二重引用符はシェルによって取り除かれるので、pg_dumpはスキーマを取得します。スキーマは、通常のSQLルールに従って大文字と小文字に変換されます。だからあなたは書く必要があります:

pg_dump -n '"Schema"' -U postgres database

これで、シェルは一重引用符を使用して、「スキーマ」をpg_dumpに渡します。

6
Nathan Foley