我通过Gradle-Liquibase(v 1.1.1)插件使用Liquibase。我有以下变更集......
<changeSet id="create_my_stored_proc" author="davea" dbms="mysql" runAlways="true">
<sqlFile endDelimiter="//" path="src/main/resources/scripts/create_my_stored_proc.sql" stripComments="true"/>
</changeSet>
是否可以设置一些内容,以便仅为此变更集忽略校验和?底层程序处于不断变化的状态,而不是每次都创建一个新的变更集,我希望现有的变更集在每个Liquibase构建上运行。
您可以添加runAlways
和/或runOnChange
属性。
您可以使用具有已知良好值的<validCheckSum>
标记禁用每个changeSet的检查。
例如,如果前一个变更集有像8:b3d6a29ce3a75940858cd093501151d1
那样的校验和,并且你想调整那个changeSet(但是在这个步骤已成功的地方没有重新应用它)那么你可以使用这样的东西:
<changeSet author="me" id="mychangeset">
<validCheckSum>8:b3d6a29ce3a75940858cd093501151d1</validCheckSum>
<sqlFile ... />
</changeSet>
“默认情况下,RunAlways仍会抛出校验和错误,但您始终可以使用runOnChange = true或any来更改它。”
看看liquibase:https://liquibase.jira.com/browse/CORE-2506提出的这张票
所以,你可以这样做:
<changeSet id="create_my_stored_proc" author="davea" dbms="mysql" runAlways="true">
<validCheckSum>any</validCheckSum>
<sqlFile endDelimiter="//" path="src/main/resources/scripts/create_my_stored_proc.sql" stripComments="true"/>
</changeSet>