jenkins mysql脚本_需要在Jenkins管道脚本中执行SQL脚本的工作策略

作为Jenkins管道脚本的一部分,我需要执行一些SQL脚本来初始化数据库(mariadb)。这项工作在我拥有的詹金斯奴隶上运行。我维护Jenkins主实例,但不是它运行的主机。需要在Jenkins管道脚本中执行SQL脚本的工作策略

我的第一次尝试是在脚本中调用“Sql.newInstance(...)”和“sql.execute(...)”。由于mariadb jar不在类路径中,因此失败。

然后我尝试设置从属的CLASSPATH env var,将mariadb客户端jar添加到它,然后断开连接并重新连接从属设备。这似乎没有效果。

然后我尝试了@ GrapeConfig/@ Grab方法。我使用@GrapeConfig来设置“systemClassLoader = true”。这会因“无法找到合适的类加载器”而失败。于是,我尝试删除@GrapeConfig,并且失败,出现“RuntimeException:无法创建类javax.xml.parsers.SAXParserFactory的提供程序”。

接下来,我想我会尝试从“sh”命令直接运行“mysql”,并在我的sql脚本的内容中管道。这似乎是合理的,但我不确定这是否会起作用。

我已经看过笔记谈论各种尝试这样做,但我从来没有听说过某人成功地做到这一点。

+0

你可以把mariadb jar放在Jenkins JDK/jre/lib/ext中,试试用Sql.newInstance(...) –

+0

你可以把Groovy代码放到Gradle项目中运行SQL脚本,然后使用Jenkins在管道中使用Gradle构建步骤运行所需的Gradle任务。这是我之前完成的设置数据库以在项目CI构建上运行测试的事情。然后你可以在Jenkins之外离线工作。 –

+0

有趣的想法,特别是在我运行这些sql脚本之前,我已经使用Gradle构建脚本构建了自己的代码。当然,您应该添加这个答案作为答案,并加以阐述。 –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值