通过jenkins部署postgres - 持续集成/部署

时间:2016-07-17 19:08:15

标签: postgresql jenkins deployment jenkins-plugins continuous-deployment

我在* .sql文件中获得了数据库转储(表,函数,触发器等)。 此时我通过传递执行shell命令:

通过jenkins部署它们
sudo -u postgres psql -d my_db < /[path_to_my_file].sql

问题是,如果我的sql文件出现问题,则构建完成为SUCCESS。如果出现故障,我想立即得到信息,而不是查看日志并检查每个命令是否成功执行。

通过jenkins以其他方式部署postgres数据库是否可能(如果答案是&#39;是&#39;)?

2 个答案:

答案 0 :(得分:1)

确保已设置     set -e 在运行命令之前。 如果这不起作用,我会查看上面命令的返回码。这可以通过运行来完成     echo $? 在命令之后。

如果在失败时给你一个零,那就是postgres错误(在失败的情况下,它应该返回0以外的其他东西)。

也许有一个postgres标志在错误输入时失败。

编辑:     -v ON_ERROR_STOP=1 作为postgres的标志应该使postgres失败

答案 1 :(得分:1)

我将执行命令更改为:

sudo -u postgres psql -v ON_ERROR_STOP=1 -d my_db < [path_to_file].sql