【问题标题】:How to Execute Liquibase script in Jenkins without installing liquibase plugins as shell scripts如何在 Jenkins 中执行 Liquibase 脚本而不将 liquibase 插件安装为 shell 脚本
【发布时间】:2019-07-19 13:34:34
【问题描述】:

我们使用的是 Liquibase 3.6.3 版本

我们正在使用 liquibase.bat(我们在安装过程中获得)在 SQL Server 数据库上使用 liquibase 运行 SQL 升级脚本,如下所示在我们的本地 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 更新

现在我们的要求是通过 Jenkins 实现相同的目标,就像我们目前正在转向 AWS。

问题:

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

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

• 我们是否有任何 shell 命令 sn-ps 可以在 Jenkins 上执行 liquibase 脚本?

• 任何脚本 sn-ps 以便我们可以在 Jenkins 管道中使用它们

还有其他方法可以实现吗?

【问题讨论】:

  • 你在一些java项目中使用liquibase吗?如果是这样,liquibase 有 maven 插件可以用于此。
  • 你好 Bilak,我的目标是将 Jenkins 管道上的 Liquibase 脚本作为 bash 脚本运行,而不是使用 liquibase.bat 文件,而且我不允许使用 Jenkins-Liquibase 插件

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


【解决方案1】:

liquibase 附带的liquibase shell 脚本等效于liquibase.bat

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

【讨论】:

  • 谢谢史蒂夫。似乎是由于未解决的安全漏洞,Jenkins 插件分发已暂停。这就是我们团队不鼓励安装插件的原因。能否请您帮我分享命令 sn-p / reference,以便我可以尝试一下,看看它是如何工作的。
  • 如果您的liquibase.bat 命令适用于 Windows,则等效的liquibase 命令将适用于 Linux。如果不是这样,请再次详细询问:您使用的命令是什么,环境等。结果是什么?这些结果与您的预期有何不同?
  • 谢谢史蒂夫。不确定我上次运行命令时是否遗漏了什么。让我再次验证您的建议,看看会发生什么。
  • 谢谢史蒂夫。当我尝试时不确定最初可能出了什么问题,但现在它按预期工作。感谢您的建议和时间。
【解决方案2】:

似乎这对我有用。

Windows:

liquibase.bat --changeLogFile=..\MasterChangelog.xml --driver==com.microsoft.sqlserver.jdbc.SQLServerDriver --classpath=sqljdbc4-3.0.jar --url="jdbc:sqlserver:// ;数据库名称=我的数据库;用户=我的用户;密码=我的密码;" --logLevel=INFO 更新

bash 脚本:

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

【讨论】:

  • 为了大家的利益,比较windows和unix有些区别,unix是区分大小写的,我们使用的斜杠要非常小心,正斜杠和反斜杠需要对文件使用chmod +x命令我们希望在其上执行以在 UNIX 中提供执行权限。
猜你喜欢
  • 1970-01-01
  • 2020-02-11
  • 2016-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-31
相关资源
最近更新 更多