Spring Boot 更改数据库更改日志中已有的旧Liquibase文件

yb3bgrhw  于 2023-01-17  发布在  Spring
关注(0)|答案(1)|浏览(154)

我有一个旧的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数据库的方法?

ldioqlga

ldioqlga1#

有几个选项,哪一个最适合您取决于项目中的约定。
1.前提条件不影响校验和:您可以向现有的变更集添加前提条件,这会阻止在测试数据库上执行,并使用相反的前提条件为测试数据库编写正确的变更集(尽管不清楚如何正确区分测试和生产数据库)-例如,检查Prevent error when dropping not existing sequences, creating existing users
1.您可以为修改的变更集指定<validCheckSum>-seems to be exactly your case
1.您可以为测试数据库创建另一个变更集,并将这两个变更集都标记为failOnError="false"-如果变更集只包含看起来安全的createIndex变更,则liquibase blogPrevent error when dropping not existing sequences, creating existing users中也描述了此方案
1.你可以指定<validCheckSum>ANY</validCheckSum>-在这种情况下,你不需要弄清楚以前的校验和是什么,但是它看起来不安全。

相关问题