Sql server Postgres:将架构从内部服务器复制到部署服务器的脚本;每一步都不输入密码
我想将我的数据库模式(只是模式;不是数据)从内部服务器复制到外部服务器。 我面临的问题是每一步都要输入密码。尽管复制的步骤非常简单,但我无法生成一个脚本来自动化整个过程 我现在所拥有的: 在内部服务器上:Sql server Postgres:将架构从内部服务器复制到部署服务器的脚本;每一步都不输入密码,sql-server,postgresql,ubuntu,passwords,dbmigrate,Sql Server,Postgresql,Ubuntu,Passwords,Dbmigrate,我想将我的数据库模式(只是模式;不是数据)从内部服务器复制到外部服务器。 我面临的问题是每一步都要输入密码。尽管复制的步骤非常简单,但我无法生成一个脚本来自动化整个过程 我现在所拥有的: 在内部服务器上: pg_dump -C -s --file=schema.txt {name} scp schema.txt prakhar@{external server}:/home/prakhar dropdb {name} createdb {name} psql --file=schema.txt
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}
在外部服务器上:
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命令
以下是用于指定Postgres密码的密码,包括PGPASSWORD
对于像scp这样的*nix命令,还有其他选项。一个是。如果您想将所有这些都作为shell脚本保存,那么这将非常有效
另一种选择,我可能会使用这种方法,就是废弃shell脚本包装器,改为使用类似Python的东西
您可以使用sudo运行命令,也可以在远程计算机上运行命令,还可以运行shell命令,如Postgres实用程序(您可能希望为此在Fabric内的环境哈希中设置PGPASSWORD)