我在* .sql文件中获得了数据库转储(表,函数,触发器等)。 此时我通过传递执行shell命令:
通过jenkins部署它们sudo -u postgres psql -d my_db < /[path_to_my_file].sql
问题是,如果我的sql文件出现问题,则构建完成为SUCCESS。如果出现故障,我想立即得到信息,而不是查看日志并检查每个命令是否成功执行。
通过jenkins以其他方式部署postgres数据库是否可能(如果答案是&#39;是&#39;)?
答案 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