标签: database ant versioning
我在java上有一个web应用程序,它正在使用数据库。我需要一个ant的脚本来部署或更新我的应用程序到最新版本。应用程序部分没有问题,但我不知道如何进行数据库更新。
我有一个想法是在sql脚本的名称中内置一些元信息(版本号)。
例如:
检测到我的脚本,当前版本是1.0.1,所以我需要通过SQL任务执行DB_1.2.0.sql,DB_2.0.0.sql,DB_2.1.0.sql文件。问题是:如何使用ant查找我需要执行的文件。
也许这不是更新数据库的最佳方式。你还有其他想法吗?
答案 0 :(得分:2)
Flyway按照您的描述工作。它记录已应用于数据库的SQL文件,从而实现自动升级。简单直接使用。
更强大的解决方案,恕我直言,liquibase。它具有XML语法来记录数据库更改,从而可以生成跨平台SQL。它还具有一些强大的功能,例如回滚更改和在数据库之间执行差异的功能。
答案 1 :(得分:1)
看起来你的文件名遵循严格的对话。在这种情况下,您可以通过匹配模式filelist来查找文件,并使用sql执行。
您可以使用LiquiBase编写一些可以帮助进行数据库架构更新的任务 -