我使用的是flyway-core 7.15.0和spring-boot 2.4.11。下面是application.properties文件中的flyway配置
spring.flyway.schemas=schema1,schema2
spring.flyway.table=schema_version
spring.flyway.out-of-order=true
spring.flyway.ignore-missing-migrations=true另外,我还有这个bean
@Autowired
private ApplicationArguments appArgs;
@Bean
public FlywayMigrationStrategy cleanMigrateStrategy() {
    return flyway -> {
        if (appArgs.containsOption("flywayClean")) {
            flyway.clean();
        }
        if (appArgs.containsOption("flywayRepair")) {
            flyway.repair();
        }
        flyway.migrate();
    };
}一切正常,但是当我再添加一个像这样的模式,并重新启动应用程序时,新的模式不会创建。
spring.flyway.schemas=schema1,schema2,schema3有人知道为什么在第一次运行后没有添加schema3吗?
发布于 2021-10-06 08:49:00
在当前版本7.x和v8测试版中,创建模式的检查只在“干净的”数据库上进行,也就是说,模式历史表还没有创建,因此,如果您已经启动了一系列迁移并通过添加一个额外的参数来更改schemas参数,则永远不会创建它。(严格地说,只有在schemas参数没有改变历史表的隐含位置的情况下才会如此!)
我会将此作为一个问题提交给团队进行审查。https://github.com/flyway/flyway/issues/3296
https://stackoverflow.com/questions/69460752
复制相似问题