我正在尝试从生产数据库检索架构并使用以下脚本:
#!/bin/sh
ssh -f -o ExitOnForwardFailure=yes -L xxxx:domain.com:xxx servername sleep 10
echo 'password'
pg_dump --port xxxx --username johndoe --host localhost -W password --file schemadump.sql --schema-only --no-privileges --no-owner databasename
但是它返回错误
pg_dump:命令行参数太多(第一个是“数据库名称”)。
我尝试了一些变体,但仍然遇到相同的错误。欢迎任何建议。
发生这种情况是因为
-W
标志:
强制 pg_dump 在连接到数据库之前提示输入密码。
它会跳过命令并需要输入密码。
如果您想为具有授权的 pg_dump 编写一行脚本,请按以下方式使用临时变量而不是标志:
PGPASSWORD =“密码”pg_dump --port xxxx --用户名 johndoe --主机 localhost --文件 schemadump.sql --schema-only --no-privileges --no-owner 数据库名称