如何更新现有变更集

问题描述 投票:0回答:3

我想更新非常旧的变更集,因为它有一个错误。我已经更新了changesetid并且在运行之后我得到了校验和错误,即校验和被修改了。现在我已经使用这个新的checkSum添加了validCheckSum标签。成功后,我看不到新的变化。有没有办法更新已经执行的更改集。

liquibase
3个回答
1
投票

每个changeSet标签都由“id”标签,“author”标签的组合唯一标识,因此请检查id表中是否存在author nameDATABASECHANGELOG。如果组合存在,则更改xml文件中的id,然后运行构建

如果仍然不起作用,那么在runOnChange中添加<ChangeSet>属性并尝试它

runOnChange - 如果发现任何更改,则执行它已存在的变更集


0
投票

使用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>

0
投票

如果它是一个非常古老的变更集,你已经说过,你应该考虑不要改变旧的变更集,而是添加一个新的变更集来修复bug,因为它可以让你更好地控制你拥有的版本。这是使用liquibase的主要原因之一。

© www.soinside.com 2019 - 2024. All rights reserved.