在Spring Boot 2下激活后启动liquibase。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Spring Boot 2下激活后启动liquibase。相关的知识,希望对你有一定的参考价值。
我们有一个带有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?
答案
你可以通过以下方式来控制这些变化集的执行 先决条件. 比如说。
<changeSet id="1" author="bob">
<preConditions onFail="MARK_RAN">
<indexExists>your_act_index</indexExists>
</preConditions>
<sql>alter index ... rebuild tablespace ...</sql>
</changeSet>
这样一来,只有存在的索引才会被重建,而在空的数据库中是不可能的。
以上是关于在Spring Boot 2下激活后启动liquibase。的主要内容,如果未能解决你的问题,请参考以下文章
全网最新Spring Boot2.5.1整合Activiti5.22.0企业实战教程<流程挂起与激活篇>
Flyway、Spring Boot 和应用程序在没有数据库的情况下启动