Spring boot Flyway:防止在空数据库上迁移?

Spring boot Flyway:防止在空数据库上迁移?,spring-boot,flyway,camunda,Spring Boot,Flyway,Camunda,我正在开发一个使用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_ t

我正在开发一个使用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的方式吗?flyway是否应该在Camunda初始化数据库之前执行

您可以检查该列是否已经存在,例如在postgresql和MySQL上:我希望避免接触SQL脚本,因为它们是由Camunda提供的。。。但是是的,在每个命令中添加“if not exists”可能是我解决最后一个问题的最简单方法:您应该使用flyway或camunda initilization,而不是两者都可以检查列是否已经存在,例如在postgresql和MySQL上:我希望避免接触SQL脚本,因为它们是由卡蒙达提供的。。。但是,是的,似乎在每个命令中添加“if not exists”可能是我解决最后一个问题的最简单方法:您应该使用flyway或camunda初始化,而不是两者都使用