我使用pg_dump已有一段时间了,每次尝试运行相同的脚本时,我似乎都会遇到问题。不确定是用户错误还是与更新到Postgres 11有关。
这是我的命令
pg_dump --dbname=postgresql://username:password@localhost:5432/DatabaseName --data-only --column-inserts -t "\"HoldingValuesTemp\"" > holdingValues.sql
这会引发错误
pg_dump: too many command-line arguments (first is "HoldingValuesTemp\")
我认为问题与表名有关,它区分大小写,并且是HoldingValuesTemp。
我试图将其分解为另一个pg_dump
pg_dump -d DatabaseName -p 5432 -U username --data-only --column-inserts -t "\"HoldingValuesTemp\"" > holdingValues.sql
哪个错误相同
所以我也尝试过
pg_dump -d DatabaseName -p 5432 -U username --data-only --column-inserts -t '"HoldingValuesTemp"' > holdingValues.sql
输入密码后,我得到pg_dump: no matching tables were found
任何帮助将不胜感激。
答案 0 :(得分:0)
尝试使用模式限定表名:
-t '"MySchema"."HoldingValuesTemp"'
在表名中也可能有空格或类似字符。
答案 1 :(得分:0)
我的解决方案比解决方案更能解决问题。
问题与表名有关,不确定为什么找不到该表,但我认为它与大小写有关。
解决方案:
使用我用通配符查找的前缀重命名表。
表为“ HoldingValuesTemp”,我将其更新为“ ts_HoldingValuesTemp”
然后运行以下命令
pg_dump -d DatabaseName -p 5432 -U username --data-only --column-inserts -t 'ts_*' > holdingValues.sql
使其备份所有以“ ts_”开头的表