我的要求是,让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的精神是管理db模式。changeLogGenerate这个工具对启动项目很有用,但它并不是用来创建delta以上版本的。
Liquibase必须是源头,而不是结果。
埃里克
PostgreSQL
如果根据模式,如果它不属于你的 changeLogFile
Update
新的数据库中包含您的初始变更日志(有t1和t2的那个)。diffChangeLog
指挥部 --referenceUrl
到新创建的数据库中,并且 --changeLogFile
到您更改后的变更日志(有t1、t2和t3的那个)。它将创建 changeLog
的区别,在你的情况下应该是t3。如果需要,您可以通过 --outputFile