我有一个旧的Liquibase .xml文件,用于向两列添加索引。它已经在ASECHANGELOG表中并投入生产,已经有几年了。但是现在我更新了H2数据库用于我的集成测试,它们因为“article_id“而失败。列名中有一个空格。
<createIndex tableName="order_journal" indexName="IDX_ArticleId_Customer">
<column name="article_id "/>
<column name="costumer_id"/>
</createIndex>
我的数据源配置:
我删除了空格,测试工作正常。当然,应用程序没有启动,因为我在更改锁中编辑了一个已经提交的文件。编辑旧的Liquibase文件的常用方法是什么?是否有适用于H2数据库的方法?
1条答案
按热度按时间ldioqlga1#
有几个选项,哪一个最适合您取决于项目中的约定。
1.前提条件不影响校验和:您可以向现有的变更集添加前提条件,这会阻止在测试数据库上执行,并使用相反的前提条件为测试数据库编写正确的变更集(尽管不清楚如何正确区分测试和生产数据库)-例如,检查Prevent error when dropping not existing sequences, creating existing users
1.您可以为修改的变更集指定
<validCheckSum>
-seems to be exactly your case1.您可以为测试数据库创建另一个变更集,并将这两个变更集都标记为
failOnError="false"
-如果变更集只包含看起来安全的createIndex
变更,则liquibase blog和Prevent error when dropping not existing sequences, creating existing users中也描述了此方案1.你可以指定
<validCheckSum>ANY</validCheckSum>
-在这种情况下,你不需要弄清楚以前的校验和是什么,但是它看起来不安全。