【问题标题】:Grails Database Migration and Jenkins on CloudbeesCloudbees 上的 Grails 数据库迁移和 Jenkins
【发布时间】:2012-01-01 22:45:29
【问题描述】:

我希望每天晚上将我的测试系统自动部署到 cloudbees 的 dev@cloud 系统。

现在的问题是我在 grails 上使用 dbm-update 目标并尝试从 Jenkins 更新数据库。这是一个问题,因为 com.cloudbees.jdbc.Driver 在此上下文中不可用。仅当应用程序部署到测试系统时。

是否有人已经尝试过这个并且可以帮助我提供一些如何解决或解决这个问题的提示?

谢谢

【问题讨论】:

    标签: grails jenkins database-migration cloudbees


    【解决方案1】:

    您可以在插件中为测试上下文中的应用程序设置updateOnStart 标志,

    grails.plugin.databasemigration.updateOnStart = true
    grails.plugin.databasemigration.updateOnStartFileNames = ['changelog.groovy']
    

    这将在您的测试应用程序启动时运行迁移,因此您无需单独执行dbm-update。由于这使用与您正在运行的应用程序相同的 JDBC 驱动程序,因此它应该可以工作。

    【讨论】:

    • 谢谢你这工作。一个问题,当数据库更新失败时会发生什么?我的意思是稍后在运行生产系统时,最好将这部分与部署分开,以使生产数据库预先运行并对错误做出反应。
    • 您应该在运行迁移时通过在提交之前在本地运行 dbm-update 来捕捉到这一点。但是如果它失败了,它会让你的应用程序无法启动。不过,您的 CI 会在测试期间发现任何故障。
    【解决方案2】:

    查看 RUN 控制台 (https://run.cloudbees.com) - 在那里您会找到您的 MySQL 设置

    您可以使用标准 MySQL JDBC 驱动程序从任何位置(包括 DEV@cloud 和您的测试用例)连接到 MySQL 数据库。

    【讨论】:

      猜你喜欢
      • 2017-01-08
      • 2011-05-22
      • 1970-01-01
      • 2017-05-26
      • 2011-01-07
      • 2012-01-15
      • 2015-12-25
      • 1970-01-01
      相关资源
      最近更新 更多