生成变更日志时较小的变更集

时间:2019-02-28 16:00:11

标签: liquibase

是否可以生成变更日志,将变更集合并在一起?

赞:

<changeSet author="Author" id="1">
    <dropNotNullConstraint columnDataType="varchar(255)" columnName="name" tableName="table"/>
    <dropNotNullConstraint columnDataType="varchar(255)" columnName="phone" tableName="table"/>
    <dropNotNullConstraint columnDataType="bigint" columnName="email" tableName="table"/>
</changeSet>


代替这个:

<changeSet author="Author" id="1">
    <dropNotNullConstraint columnDataType="varchar(255)" columnName="name" tableName="table"/>
</changeSet>
<changeSet author="Author" id="2">
    <dropNotNullConstraint columnDataType="varchar(255)" columnName="phone" tableName="table"/>
</changeSet>
<changeSet author="Author" id="3">
    <dropNotNullConstraint columnDataType="bigint" columnName="email" tableName="table"/>
</changeSet>



如果是这样,您可以选择自定义范围吗? (例如在给定表中的所有更改都分组在一起,例如)。如果不是,是否有“最佳实践”理由避免手动分组?

1 个答案:

答案 0 :(得分:1)

如果您的意思是命令generateChangeLog,则否,没有选择将所有更改放入一个changeLog中的选项。但是,您可以根据需要以编程方式创建该代码。

Liquibase应该按changeSet进行更改,因为每个changeSet 是在一个事务中执行的 read here。因此,如果您在一个changeSet中包含许多更改,而该changeSet的执行失败,那么您将很难找到失败的更改。最好按changeSet处理更改。

注意::有时我还会对changeSet使用多个更改(例如,对表或DML(数据)修改的注释(注释)),但我更喜欢每个changeSet。