咨询Liquibase变更集校验和计算规则及属性替换完整文档
Liquibase变更集校验和计算规则全场景解析
不影响校验和的变更内容
以下修改不会触发校验和变化:
- 重新格式化SQL语句以外的空白和换行
- 修改变更集的前置条件(preconditions)
- 修改上下文(contexts)
- 修改标签(labels)
- 添加
validCheckSum设置 - 修改原生XML/YAML注释或
comment标签内容
属性替换对校验和的影响
针对不同变更类型,属性替换的时机与校验和计算的关系有明确区别:
sql类型变更集:先完成属性替换,再计算校验和sqlFile类型变更集:先计算校验和,再替换外部SQL文件中的属性- 结构化变更集(如XML/YAML中的
addColumn/createTable等):校验和计算在属性替换之后进行。这类变更的属性占位符会被先替换为实际值,再作为变更内容的一部分参与校验和计算。
示例场景说明
以你提供的XML变更集为例:
<changeSet author="[...]" id="[...]"> <addColumn tableName="FOO"> <column name="BAR" type="${type.string.max.80}" /> </addColumn> </changeSet>
其中${type.string.max.80}会被先替换为对应的实际数据库类型(如VARCHAR(80)),再基于替换后的完整变更内容生成校验和。
内容的提问来源于stack exchange,提问作者Thorsten Schöning
相关产品推荐
相关产品推荐

