Liquibase 可以忽略单个变更集的校验和吗?
Can Liquibase ignore checksums for a single changeset?
我通过 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
and/or runOnChange
属性。
您可以使用具有已知良好值的 <validCheckSum>
标签禁用每个 changeSet 的检查。
例如,如果之前的变更集有一个类似于 8:b3d6a29ce3a75940858cd093501151d1
的校验和,并且您想调整该变更集(但不在此步骤已经成功的地方重新应用它),那么您可以使用这样的东西:
<changeSet author="me" id="mychangeset">
<validCheckSum>8:b3d6a29ce3a75940858cd093501151d1</validCheckSum>
<sqlFile ... />
</changeSet>
"RunAlways will still throw a checksum error by default, but you can always use runOnChange=true or any to change that."
看看在 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>
我通过 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
and/or runOnChange
属性。
您可以使用具有已知良好值的 <validCheckSum>
标签禁用每个 changeSet 的检查。
例如,如果之前的变更集有一个类似于 8:b3d6a29ce3a75940858cd093501151d1
的校验和,并且您想调整该变更集(但不在此步骤已经成功的地方重新应用它),那么您可以使用这样的东西:
<changeSet author="me" id="mychangeset">
<validCheckSum>8:b3d6a29ce3a75940858cd093501151d1</validCheckSum>
<sqlFile ... />
</changeSet>
"RunAlways will still throw a checksum error by default, but you can always use runOnChange=true or any to change that."
看看在 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>