pg_dump命令问题

时间:2019-12-11 15:43:58

标签: postgresql pg-dump

我使用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

任何帮助将不胜感激。

2 个答案:

答案 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_”开头的表