PG_Dump 返回“太多命令行参数(第一个是“数据库名称”)”

问题描述 投票:0回答:1

我正在尝试从生产数据库检索架构并使用以下脚本:

#!/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:命令行参数太多(第一个是“数据库名称”)。

我尝试了一些变体,但仍然遇到相同的错误。欢迎任何建议。

postgresql pg-dump
1个回答
0
投票

发生这种情况是因为

-W
标志:

强制 pg_dump 在连接到数据库之前提示输入密码。

它会跳过命令并需要输入密码。

如果您想为具有授权的 pg_dump 编写一行脚本,请按以下方式使用临时变量而不是标志:

PGPASSWORD =“密码”pg_dump --port xxxx --用户名 johndoe --主机 localhost --文件 schemadump.sql --schema-only --no-privileges --no-owner 数据库名称

© www.soinside.com 2019 - 2024. All rights reserved.