使用jenkins执行postgres脚本

时间:2017-06-11 04:59:29

标签: postgresql shell jenkins continuous-integration jenkins-plugins

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

sudo -u postgres psql

使用密码创建用户声纳'声纳';

\杜

使用OWNER声纳编码创建数据库声纳' UTF8';

授予数据库声纳对声纳的所有特权;

\升

\ q

1)我可以看到内容在终端中打印但未执行。

解决方案我尝试过:        我创建了像

这样的脚本

!/斌/庆典

sudo -h myip -u postgres bash -c" psql -c \" CREATE USER sonar WITH PASSWORD' sonar'; \"" sudo -h myip -u postgres bash -c" psql -c \" CREATE DATABASE sonar WITH OWNER声纳编码' UTF8'; \""

sudo -h myip -u postgres bash -c" psql -c \"授予数据库声纳声纳对声纳的所有特权; \""

此脚本工作正常,但我必须多次连接远程服务器。我希望脚本连接一次并执行所有psql查询。

2)我也在寻找首先执行的dev和staging环境然后再生产。我们可以用这种方式管理插件吗?

1 个答案:

答案 0 :(得分:1)

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

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

my_queries.sql内容:

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