在Spring Boot 2下激活后启动liquibase。

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

我们有一个带有activiti和liquibase依赖关系的项目。activiti是自动配置的(example.yml中的'spring.activiti.async-executor-activate'和'spring.activiti.database-schema-update'params),liquibase也是(example.liquibase.change-log')。

现在我们需要使用特殊的liquibase变化集来重建activiti表(ACT_*)的索引,例如 <sql>alter index ... rebuild tablespace ...</sql>.

現有的資料庫沒有問題,但在安裝DB後第一次啟動應用程式時就崩潰了,原因是 liquibase試圖更改一個不存在的ACT_*索引。

考虑到Spring Boot的自动配置,我如何在activiti DB安装后启动liquibase?

java spring-boot liquibase activiti spring-autoconfiguration
1个回答
2
投票

你可以通过以下方式来控制这些变化集的执行 先决条件. 比如说。

<changeSet id="1"  author="bob">  
    <preConditions onFail="MARK_RAN">  
        <indexExists>your_act_index</indexExists>  
    </preConditions>  
    <sql>alter index ... rebuild tablespace ...</sql>
</changeSet>  

这样一来,只有存在的索引才会被重建,而在空的数据库中是不可能的。

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