gpt4 book ai didi

sql-server - Postgres :script to copy schema from internal server to deployment server ; without entering passwords at every step

转载 作者:行者123 更新时间:2023-12-04 19:19:09 25 4
gpt4 key购买 nike

我想将我的数据库模式(只是模式;不是数据)从内部服务器复制到外部服务器。
我面临的问题是在每一步都输入密码。即使复制的步骤非常简单,我也无法生成脚本来自动化整个过程。

到目前为止我所拥有的:

在内部服务器上:

pg_dump -C -s --file=schema.txt {name}
scp schema.txt prakhar@{external server}:/home/prakhar

在外部服务器上:
dropdb {name}
createdb {name}
psql --file=schema.txt {name}

在每一步都提示我输入密码。
我想做两件事:
1:从外部服务器运行脚本以从内部获取模式;或相反
2:以脚本为我处理的方式合并内部和外部服务器的密码。

最佳答案

我建议将这些命令包装在 bash 脚本中,并在每个脚本中,在运行命令之前添加以下行:

export PGPASSWORD=<password>

您要使用的密码在哪里。这会将其导出为 Postgres 命令可用的环境变量。

这里是 other methods ,包括 PGPASSWORD,用于指定 Postgres 密码。

对于像 scp 这样的 *nix 命令,还有其他选项。一种是 sshpass .如果您想将这一切都保留为 shell 脚本,那将很有效。

另一种选择,也是我可能会用于此类事情的一种选择是废弃 shell 脚本包装器,而是使用 Python 的 Fabric 之类的东西。 .

您可以使用 sudo 运行命令,也可以在远程机器上运行命令,以及诸如 Postgres 实用程序之类的 shell 命令(为此,您需要在 Fabric 中的环境哈希中设置 PGPASSWORD)。

关于sql-server - Postgres :script to copy schema from internal server to deployment server ; without entering passwords at every step,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26681805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com