【问题标题】:How to update database by ant (versioning)?如何通过 ant(版本控制)更新数据库?
【发布时间】:2014-01-17 02:19:32
【问题描述】:

我在 java 上有一个 Web 应用程序,它正在使用数据库。我需要一个 ant 脚本来部署或更新我的应用程序到最新版本。应用部分没有问题,但是我不知道如何进行数据库更新。

我有一个想法,将一些元信息(版本号)内置到 sql 脚本的名称中。

例如:

  • DB_1.0.0.sql
  • DB_1.0.1.sql
  • DB_1.2.0.sql
  • DB_2.0.0.sql
  • DB_2.1.0.sql

我的脚本检测到,当前版本是 1.0.1,所以我需要通过 SQL 任务执行 DB_1.2.0.sql、DB_2.0.0.sql、DB_2.1.0.sql 文件。问题是:如何用 ant 找到我需要执行的文件。

也许这不是更新数据库的最佳方式。你有什么其他想法吗?

【问题讨论】:

    标签: database ant versioning


    【解决方案1】:

    Flyway 如您所描述的那样工作。它会记录已应用于数据库的 SQL 文件,从而实现自动升级。使用简单直接。

    恕我直言,一个更强大的解决方案是liquibase。它具有记录数据库更改的 XML 语法,支持跨平台 SQL 的生成。它还具有一些强大的功能,例如能够回滚更改和执行数据库之间的差异。

    【讨论】:

    • @MarkOConnor 感谢您的回答!很抱歉我很久没有回复了。 Flyway 看起来我需要。
    • 404 在您的第二个链接上。
    【解决方案2】:

    看起来您的文件名遵循严格的约定。在这种情况下,您可以通过匹配模式filelist 来查找文件并使用sql 执行。

    您可以使用LiquiBase 编写一些有助于数据库架构更新的任务-

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-16
      • 2015-05-06
      • 2016-07-09
      相关资源
      最近更新 更多