Postgresql 使用jenkins执行postgres脚本

Postgresql 使用jenkins执行postgres脚本,postgresql,shell,jenkins,continuous-integration,jenkins-plugins,Postgresql,Shell,Jenkins,Continuous Integration,Jenkins Plugins,我试图在远程服务器上使用jenkis执行postgres脚本。下面是shell脚本的内容。我使用的是通过SSH发布插件 sudo-u postgres psql 使用密码“sonar”创建用户声纳; \杜 创建具有所有者sonar编码“UTF8”的数据库sonar; 将数据库sonar上的所有权限授予sonar; \l \q 1) 我可以看到内容在终端中打印,但未执行 我尝试过的解决方案: 我创建了我的脚本,就像 #/bin/bash sudo-hmyip-u postgres bash-c

我试图在远程服务器上使用jenkis执行postgres脚本。下面是shell脚本的内容。我使用的是通过SSH发布插件

sudo-u postgres psql
使用密码“sonar”创建用户声纳;
\杜
创建具有所有者sonar编码“UTF8”的数据库sonar;
将数据库sonar上的所有权限授予sonar;
\l
\q
1) 我可以看到内容在终端中打印,但未执行

我尝试过的解决方案:

我创建了我的脚本,就像

#/bin/bash
sudo-hmyip-u postgres bash-c“psql-c\”使用密码“sonar”创建用户声纳\""
sudo-hmyip-u postgres bash-c“psql-c\”使用
所有者声纳编码为“UTF8”\""
sudo-hmyip-u postgres bash-c“psql-c\”将数据库sonar的所有特权授予sonar\""
这个脚本工作正常,但我必须多次连接远程服务器。我希望脚本连接一次并执行所有psql查询


2) 我也在寻找开发和登台环境执行的第一次,然后生产。我们可以这样管理插件吗?

您可以创建包含所有查询的文件,比如my_querys.sql,然后像这样运行它:

sudo-h myip-u postgres bash-f my_querys.sql

my_querys.sql内容:

CREATE USER sonar WITH PASSWORD 'sonar';
CREATE DATABASE sonar WITH OWNER sonar encoding 'UTF8';
GRANT ALL PRIVILEGES ON DATABASE sonar TO sonar;