[英]Start liquibase after activiti under Spring Boot 2
我们有一个带有 activiti 和 liquibase 依赖项的项目。 Activiti 是自动配置的(exc. 'spring.activiti.async-executor-activate' 和 application.yml 中的 'spring.activiti.database-schema-update' 参数)和 liquibase 也是(exc. 'spring.liquibase.change-log ')。
现在我们需要使用特殊的 liquibase 变更集(如<sql>alter index... rebuild tablespace...</sql>
)重建 activiti 表(ACT_*)上的索引。
现有数据库没有问题,但由于 liquibase 试图更改不存在的 ACT_* 索引,它在第一个应用程序启动时崩溃。
考虑到 Spring 引导自动配置,我如何在安装 activiti DB 后启动 liquibase?
您可以使用preconditions控制这些变更集的执行。 例如:
<changeSet id="1" author="bob">
<preConditions onFail="MARK_RAN">
<indexExists>your_act_index</indexExists>
</preConditions>
<sql>alter index ... rebuild tablespace ...</sql>
</changeSet>
这种方式只有在索引存在时才会重建索引,而空数据库则不然。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.