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ログにエラーはありません。
誰かアイデアはありますか?
引用符を"schema_name"
から'"schema_name"'
に変更してこれを修正しました
参照: pg_dumpは大文字のデータスキームをダンプしません
... Tom Lane 返信 :
問題は、必要な引用のレベルが2つあることです。1つはシェル用で、もう1つはSQL用です。あなたが書いたように、二重引用符はシェルによって取り除かれるので、pg_dumpはスキーマを取得します。スキーマは、通常のSQLルールに従って大文字と小文字に変換されます。だからあなたは書く必要があります:
pg_dump -n '"Schema"' -U postgres database
これで、シェルは一重引用符を使用して、「スキーマ」をpg_dumpに渡します。