如何更新现有的变更集
How to update existing changeset
我想更新非常旧的变更集,因为其中有一个错误。我已经更新了那个 changesetid 并且在 运行 之后我得到了校验和错误,即校验和被修改了。现在我已经添加了带有这个新校验和的 validCheckSum 标签。成功后我看不到新的变化。有什么方法可以更新已经执行的更改集。
每个changeSet
标签由“id”标签、“author”标签的组合唯一标识,所以请检查id
和author name
是否已经存在DATABASECHANGELOG
table。如果组合存在,则更改 xml 文件中的 id
,然后 运行 build
如果还是不行那么在<ChangeSet>
中添加runOnChange
属性然后试试
runOnChange - Executes if any changes found it already existing changeset
在带有 sqlFile 标记的变更集中使用 runOnChange 的示例。
我有一个使用 IDENTITY 列类型的 Oracle 18 脚本,但必须为不支持 IDENTITY 列类型的 Oracle 10 更改它
<changeSet id="2" author="auto" runOnChange="true">
<sqlFile dbms="oracle" encoding="utf8" endDelimiter=";" path="oracle/230.sql" relativeToChangelogFile="true" splitStatements="true" stripComments="true" />
</changeSet>
如果它是一个非常旧的变更集,如您所说,您应该考虑不更改旧的变更集,而是添加一个新的变更集来修复错误,因为它可以让您更好地控制您拥有的版本。这是使用liquibase的主要原因之一。
我想更新非常旧的变更集,因为其中有一个错误。我已经更新了那个 changesetid 并且在 运行 之后我得到了校验和错误,即校验和被修改了。现在我已经添加了带有这个新校验和的 validCheckSum 标签。成功后我看不到新的变化。有什么方法可以更新已经执行的更改集。
每个changeSet
标签由“id”标签、“author”标签的组合唯一标识,所以请检查id
和author name
是否已经存在DATABASECHANGELOG
table。如果组合存在,则更改 xml 文件中的 id
,然后 运行 build
如果还是不行那么在<ChangeSet>
中添加runOnChange
属性然后试试
runOnChange - Executes if any changes found it already existing changeset
在带有 sqlFile 标记的变更集中使用 runOnChange 的示例。 我有一个使用 IDENTITY 列类型的 Oracle 18 脚本,但必须为不支持 IDENTITY 列类型的 Oracle 10 更改它
<changeSet id="2" author="auto" runOnChange="true">
<sqlFile dbms="oracle" encoding="utf8" endDelimiter=";" path="oracle/230.sql" relativeToChangelogFile="true" splitStatements="true" stripComments="true" />
</changeSet>
如果它是一个非常旧的变更集,如您所说,您应该考虑不更改旧的变更集,而是添加一个新的变更集来修复错误,因为它可以让您更好地控制您拥有的版本。这是使用liquibase的主要原因之一。