【问题标题】:flyway doesn't create schema after initial schemas creationsflyway 在初始模式创建后不创建模式
【发布时间】:2021-11-26 08:10:43
【问题描述】:

我正在使用 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

还有,我有这个豆子

@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 吗?

【问题讨论】:

    标签: spring-boot flyway


    【解决方案1】:

    在当前版本 - 7.x 和 v8 测试版中 - 创建模式的检查仅在“干净”数据库上完成 - 也就是说,尚未创建模式历史表,因此,如果您已经开始了一系列迁移并通过添加一个额外的参数来更改schemas 参数,它永远不会被创建。 (严格来说,只有当schemas 参数没有以改变历史表的隐含位置的方式发生变化时!)

    我会将此作为问题提交给团队进行审核。 https://github.com/flyway/flyway/issues/3296

    【讨论】:

    • 感谢 Julia Hayward 的回复。我会关注这个问题。在代码中,我发现这部分被添加到它检查是否不存在架构然后创建但似乎它是出于另一个原因添加的。 github.com/flyway/flyway/blob/…
    猜你喜欢
    • 2014-03-02
    • 1970-01-01
    • 2014-10-12
    • 2015-04-04
    • 2015-07-05
    • 2019-08-16
    • 2021-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多