在Liquibase中,addautoincrement标记中的incrementby属性在4.16.1版本中引发验证错误。我不得不删除incrementby属性,它更改了md5sum。为了解决这个问题,我现在添加了<validCheckSum>1:any</validCheckSum>
。
我计划删除md5sum,让它自己在所有环境中填充。一旦不再需要<validCheckSum>1:any</validCheckSum>
标记,我如何以编程方式删除它?
Liquibase论坛上也提出了类似的问题:
- IncrementBy不适用于Liquibase 4.17中的MySQL
那篇帖子上的解决方案说:
我们通过用sql语句替换
<addAutoIncrement>
解决了这个问题:
<addAutoIncrement tableName=“Actief” columnName=“id” columnDataType=“BIGINT” incrementBy=“1” startWith=“1”/>
<sql>ALTER TABLE Actief MODIFY id BIGINT AUTO_INCREMENT</sql>
<sql>ALTER TABLE Actief AUTO_INCREMENT=1</sql>
如果你想在不再需要标签的时候删除它,你会不会只删除行
<validCheckSum>1:any</validCheckSum>
并发布新版本?
不管怎样,我认为删除校验和不是一个好主意。
它为您提供了很好的安全性,脚本运行正确,运行一次后不会接受任何更改。
否则,每个人都可以更改这些脚本并重新运行它们——你会失去很多可跟踪性。
理想情况下,您应该在测试数据库上测试您的liquibase脚本,如果它们不好,则在此处恢复它们。但一旦它好了,就应该提交它,并在部署环境时让管道执行迁移脚本。
如果你想在之后纠正一些问题,你应该做一个新的liquibase脚本。
为了数据的完整性和数据库更改的可跟踪性,我至少会建议使用它。