我正在处理的项目使用一个sql脚本,它运行几个命令作为postgres的管理员用户;如命令:相同的postgres脚本在不同的机器上使用不同的用户?
psql -U postgres -c 'CREATE DATABASE azara WITH OWNER azara'
我的同事们都在OSX和其管理的Postgres用户在默认情况下“Postgres的,而我在nixos和我的管理Postgres的用户是默认“根”。因此,脚本中的此命令需要与我的计算机上的不同,以代替
psql -U root -c 'CREATE DATABASE azara WITH OWNER azara'
处理这种差异的最佳方法是什么?
也许最简单的方法是在我的机器上创建一个'postgres'用户来运行脚本。但是这似乎是一种黑客攻击,我想知道是否有一种方法可以设置脚本来确定要使用哪个用户。
我考虑使用脚本可以用作变量的postgres environment variable。但命令
$ echo $PGUSER
返回任何内容和环境变量PGUSER似乎没有被默认设置,这样看来,我的同事们将不得不设置envirenment变量,要工作。
是否有解决方案,脚本可以使用我的默认管理员用户,哪一个不需要我的同事改变他们的设置或他们如何运行脚本?
只需创建接收用户的参数bash脚本,那么你会调用'./myscript root'或'./myscript postgres' –