如何在Liquibase中获取变化记录的delta?

问题描述 投票:0回答:2

我的要求是,让liquibase只生成更新后的 变更集 与以前相比,从数据库中 chnageSets.

比方说,我有两个表t1和t2在我的postgresql ,所以在我的 变更日志 两种 变更集 是存在的。下面是为了了解。

<changelog>
    <changeSet> t1 </changeSet>
    <changeSet> t2 </changeSet>
</changelog>

现在,当我再创建一个表t3, 变更日志 会像下面一样。

<changelog>
    <changeSet> t1 </changeSet>
    <changeSet> t2 </changeSet>
    <changeSet> t3 </changeSet> 
</changelog>

而不是让liquibase生成类似于下面的东西,这是更新后的变化。

<changelog>
    <changeSet> t3 </changeSet> 
</changelog>

这样就能方便地将更新后的变更发送到各个DB上。

liquibase delta
2个回答
0
投票

liquibase的精神是管理db模式。changeLogGenerate这个工具对启动项目很有用,但它并不是用来创建delta以上版本的。

Liquibase必须是源头,而不是结果。

埃里克


0
投票
  1. 创建一个新的数据库,在 PostgreSQL 如果根据模式,如果它不属于你的 changeLogFile
  2. Update 新的数据库中包含您的初始变更日志(有t1和t2的那个)。
  3. 现在您可以使用 diffChangeLog 指挥部 --referenceUrl 到新创建的数据库中,并且 --changeLogFile 到您更改后的变更日志(有t1、t2和t3的那个)。它将创建 changeLog 的区别,在你的情况下应该是t3。如果需要,您可以通过 --outputFile
© www.soinside.com 2019 - 2024. All rights reserved.