我想更新非常旧的变更集,因为它有一个错误。我已经更新了changesetid并且在运行之后我得到了校验和错误,即校验和被修改了。现在我已经使用这个新的checkSum添加了validCheckSum标签。成功后,我看不到新的变化。有没有办法更新已经执行的更改集。
每个changeSet
标签都由“id”标签,“author”标签的组合唯一标识,因此请检查id
表中是否存在author name
和DATABASECHANGELOG
。如果组合存在,则更改xml文件中的id
,然后运行构建
如果仍然不起作用,那么在runOnChange
中添加<ChangeSet>
属性并尝试它
runOnChange - 如果发现任何更改,则执行它已存在的变更集
使用sqlFile标记在changeset中使用runOnChange的示例。我有一个使用IDENTITY列类型的Oracle 18脚本,而不必为Oracle 10更改它,它不支持IDENTITY列类型
<changeSet id="2" author="auto" runOnChange="true">
<sqlFile dbms="oracle" encoding="utf8" endDelimiter=";" path="oracle/230.sql" relativeToChangelogFile="true" splitStatements="true" stripComments="true" />
</changeSet>
如果它是一个非常古老的变更集,你已经说过,你应该考虑不要改变旧的变更集,而是添加一个新的变更集来修复bug,因为它可以让你更好地控制你拥有的版本。这是使用liquibase的主要原因之一。