如何在Jenkins中执行Liquibase脚本而不将liquibase插件安装为shell脚本

时间:2019-07-19 13:34:34

标签: jenkins sh powershell-3.0 liquibase jenkins-groovy

我们正在使用Liquibase 3.6.3版本

我们在本地Windows机器上使用liquibase.bat(作为安装的一部分)在SQL Server数据库上使用liquibase运行SQL升级脚本,如下所示。一切正常。

命令:

liquibase.bat --changeLogFile = .. \ MasterChangelog.xml --driver == com.microsoft.sqlserver.jdbc.SQLServerDriver --classpath = sqljdbc4-3.0.jar --url =“ jdbc:sqlserver://; databaseName = MyDB; user = MyUser; password = MyPassword;” --logLevel = INFO更新

现在,我们的要求是通过Jenkins实现与当前向AWS过渡相同的目标。

问题:

•我们是否有Jenkins支持的liquibase插件?

•我们是否有任何bash支持的脚本,其行为与liquibase.bat

相同

•我们是否有任何shell命令片段来在Jenkins上执行liquibase脚本?

•任何脚本片段,以便我们可以在Jenkins管道中使用它们

还有其他方法可以实现这一目标吗?

2 个答案:

答案 0 :(得分:0)

有一个liquibase外壳程序脚本,与liquibase一起提供,相当于liquibase.bat

至少有一个用于Liquibase的Jenkins插件-https://wiki.jenkins.io/display/JENKINS/Liquibase+Runner

答案 1 :(得分:0)

似乎这对我有用。

Windows:

liquibase.bat --changeLogFile = .. \ MasterChangelog.xml --driver == com.microsoft.sqlserver.jdbc.SQLServerDriver --classpath = sqljdbc4-3.0.jar --url =“ jdbc:sqlserver:// ; databaseName = MyDB; user = MyUser; password = MyPassword;“ --logLevel = INFO更新

bash脚本:

./ liquibase --changeLogFile = .. / MasterChangeLog.xml'--url = jdbc:sqlserver:// MyDB; databaseName = MyDB; user = MyUser; password = MyPassword;' --logLevel = INFO更新