首页 > 解决方案 > Flyway:防止在空数据库上迁移?

问题描述

我正在开发一个使用 Camunda 的 Spring Boot 应用程序

我刚刚将我们的 Camunda 版本提高了几个小版本,我正在使用 Flyway 运行增量 SQL 脚本来更新数据库以支持新的 camunda 版本(v1.02--7.8-7.9.sql 和 v1.03 --7.9>7.10.sql)

此迁移适用于当前位于 Camunda 7.8 上的现有数据库,但当我尝试在干净的数据库上运行应用程序时它会失败。

其中一个脚本尝试添加一列:

ALTER TABLE ACT_ID_USER
  ADD LOCK_EXP_TIME_ timestamp;

但是,如果应用程序在一个干净的数据库上运行,它会抱怨该列已经存在 - 大概是因为数据库刚刚用 9.10 初始化,所以在事后运行 9.8 迁移不起作用

我想知道如果数据库在启动时为空,Flyway 是否有办法不运行这些迁移?

或者,我的问题是我使用 Flyway 的方式吗?是否应该在 Camunda 初始化数据库之前执行 flyway?

标签: spring-bootflywaycamunda

解决方案


推荐阅读