liquibase tagExist命令退出代码

时间:2015-10-23 11:48:24

标签: liquibase

我在命令行方式中使用liquibase 3.4.1。 我的命令如下:

D:\Work>java -cp ".\*" liquibase.integration.commandline.Main --defaultsFile=liquibase_methods.properties tagExists 4.5

效果很好:

The tag 4.5 does not exist in user@jdbc:oracle:thin:@url:port:SID

Liquibase 'tagExists' Successful

当我执行echo %errorlevel%时,操作系统告诉我0,就像上一个命令被正确释放一样。

有一个很容易的'获取退出代码的方法!= tagExists命令返回标签不存在时= 0

很容易'我的意思是比解析结果文本和寻找关键字更合适..

此致 纪尧姆

1 个答案:

答案 0 :(得分:1)

这需要更改liquibase源代码。查看课程src/main/java/liquibase/integration/commandline/Main.java,您可以看到是否存在错误,liquibase只会执行return。这需要进行更改,以便它System.exit(int),并且需要更改系统,以便命令本身返回某种成功代码。

我认为Nathan正在努力改进4.0,但对于3.x系列,这似乎是一个相当直接的改变。像这样的变化的问题是它会对其他系统产生的意外后果。我建议在github上分配项目并自己进行更改,然后创建一个pull请求,看它是否可以添加到主线代码中。