【问题标题】:Hudson: Mechanism for performing database updatesHudson:执行数据库更新的机制
【发布时间】:2012-12-12 00:59:06
【问题描述】:

我们计划使用 Hudson 自动化构建系统。我们是 Hudson 的新手,或者最好这样说我们是构建自动化流程的新手。我们的应用程序在 Java 平台上,数据库在 MS SQL 上。这个(自动化)里程碑被分解为不同的目标。我们要做的第一步是自动化数据库更改(DDL/DML),并且在更新数据库期间,如果出现任何问题,它应该能够回滚更改并向组发送电子邮件以通知失败(有原因) .否则,如果成功则允许继续下一步,即使用LiveRebel 进行构建和部署。

我认为我们应该在任何实例上建立一个构建失败的中心机制,如果构建失败,它应该能够回滚改变它本来应该做的事情。例如,如果数据库更改失败,如我所说,它应该通知并且不要继续进行。而且,如果数据库成功并且构建过程失败(例如由于单元测试),它应该能够回滚数据库更改。如果通知可以包含失败的详细信息(例如负责此的人员的异常详细信息),那么适当地诊断和查询将非常有帮助。我怎么能(应该)这样做?

我们也有兴趣将 LiquidBase 与 Hudson 一起使用。

我想征求您的意见和建议,我应该如何计划以及实现这一目标的好方法。

【问题讨论】:

    标签: java build hudson build-automation continuous-deployment


    【解决方案1】:

    首先,您不应该混淆构建和部署。数据库更新将是您的部署过程的一部分,而不是您的构建过程。即使使用持续集成,这也应该分开。这意味着您在构建项目并运行所有 JUnit 测试后更改数据库。如果在此之前失败,则不应执行更改,因此无需回滚。

    至于你的实际问题:我不知道有什么插件可以做你想做的事。在 Hudson/Jenkins 中,您始终可以执行批处理/shell 脚本。编写一个脚本来执行您的更改。如果您的脚本退出并返回错误代码,则构建应该会失败。

    对于在构建失败时发送通知有各种插件,包括电子邮件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-07
      • 2017-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多