到目前为止,我已经在 Jenkins 中看到了与构建过程相关的不同选项和工作。我想知道是否有一种方法可以创建一个可以连接到数据库并运行脚本的作业,该脚本将执行一些操作。也许,Jenkins 可以运行一个脚本文件或者只存储一些要运行的操作。提前致谢。
4 回答
您有两个主要选择:
使用Execute shell或Execute Windows 批处理命令构建步骤
使用基于 java 的工具,例如 liquibase、ant tasks、maven 插件等等。您甚至可以将其作为 JUnit 测试的一部分。考虑搜索“数据库迁移 java”
其中哪个是“正确”的解决方案取决于构建的目的:
您需要数据库进行一些测试吗?那么您可能应该使用基于 java 的解决方案,因为它独立于平台,并且很可能适用于任何操作系统。
您想在将数据库脚本交给管理员进行部署之前实际测试它们吗?然后,您可能想要使用管理员将要使用的确切工具并在管理员使用的操作系统上执行它。他们很可能不太热衷于使用基于 Java 的工具来完成这项工作。
开箱即用,Jenkins 中没有数据库插件或作业。
最简单的方法是使用 Ant 任务。Jenkins 中有对 ant 任务的原生支持。检查 Ant的SQLTask。
执行 shell(在类 Unix 系统上)和执行 Windows 批处理命令(在 Windows 上)构建步骤可用于在 Jenkins 上运行任意脚本。
您可能想查看LiquiBase,它可以通过 Maven 执行与平台无关的脚本。这可能不适合您的用例,但我过去曾成功地使用它来管理与特定软件构建相关的数据库更改,以及环境之间构建的升级。