Postgresql

pg_dump:沒有找到匹配的模式

  • January 19, 2018

我正在嘗試從 Postgres 9.4 中轉儲一個模式,在 Cents 6.5 上執行,但出現錯誤:

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 不會轉儲帶有大寫字母的數據方案

…湯姆·萊恩回答說

問題是需要兩個級別的引用:一個用於 shell,另一個用於 SQL。正如你寫的那樣,雙引號被 shell 去掉了,所以 pg_dump 得到了 Schema,它按照正常的 SQL 規則是大小寫折疊的。所以你需要寫:

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

現在,shell 使用單引號並將“Schema”傳遞給 pg_dump。

引用自:https://dba.stackexchange.com/questions/112392