使用liquibase版本控制表定义,而不是更改集

时间:2016-05-29 04:13:38

标签: oracle diff sybase liquibase changeset

我希望我的版本只有我的存储库中的最新表定义(没有更改集),并且liquibase可以确定在修补我的数据库时需要进行哪些更改。请注意,我在数百个客户站点中安装了一个非常大的数据库架构(1000多个表),每个站点都有不同的版本,我真的不知道每个版本有哪些对象

我如何为我的应用程序制作基于liquibase的安装程序,给定我的一组表定义,以及每个数据库上有大约12个不同版本的对象?

更具体地说,我希望liquibase将我的表定义与生产数据库进行比较,并发出使数据库保持最新版本所需的alter table语句。

如果有必要,我可以提供代码以完成此任务

1 个答案:

答案 0 :(得分:0)

Liquibase和类似的工具(例如flyway)主要用于支持数据库迁移。迁移是对数据库的每次更改进行跟踪,以便可以在目标环境中重放,从而使它们与开发保持同步(尽管时移)。这一切都是为了让您的架构保持在版本控制之下。

您的使用案例略有不同。如果我理解正确,你试图将Liquibase改装到一系列环境中,而这些环境并非100%与您应用程序的当前架构相匹配?

如果您打算使用liquibase,我只会推荐使用liquibase这样的迁移工具。如果你想要的只是一个数据库差异工具,我建议你去别处看看。

要执行初始同步,我建议你调查diffLog命令,再加上changeLogSync命令来初始化目标数据库上的liquibase。