在新应用程序版本部署时自动更新数据库的策略

时间:2017-06-09 17:07:10

标签: database deployment

我们有一个运行Maven的JavaEE Web应用程序来执行构建过程,JSF 2.2,Tomcat 7作为我们的服务器,MySQL 5.5作为我们的数据库。随着新功能的发展,有时我们需要改变我们的数据库结构。此时我们有工作要手动完成所有这些工作:

  1. 等到我们没有在线客户(午夜左右)
  2. 转到Tomcat经理
  3. 取消部署上下文
  4. 部署新上下文
  5. 转到phpMyAdmin并执行SQL脚本
  6. 虽然我们的应用程序仍然“小”仍然可以执行此过程,但我们期待自动化这一过程。我们已经知道了Jenkins,它可以读取我们的Git,使用Maven构建.war并且 - 不确定 - 在Tomcat上进行部署。

    但我不确定在部署新版本时如何自动化我们的SQL脚本来执行。它需要是健壮的,所以它不会弄乱我们的数据库,例如,运行它两次或类似的东西。

    我的问题是,是否有更好的部署过程专注于可以帮助我的数据库更改。

3 个答案:

答案 0 :(得分:0)

有解决方案。其中一个名为Liquibase

答案 1 :(得分:0)

您可以使用liquibase将增量数据库更改与jenkins一起应用以自动化构建过程。

答案 2 :(得分:0)

只是附上以前关于liquibase的答案,你也可以使用flywaydb