如何通过ant(版本控制)更新数据库?

时间:2012-01-31 06:31:56

标签: database ant versioning

我在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查找我需要执行的文件。

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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

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