【问题标题】:Flyway Repeatable migrations - not executed in Spring bootFlyway 可重复迁移 - 不在 Spring Boot 中执行
【发布时间】:2018-07-29 05:02:14
【问题描述】:

在我们的 Spring boot 应用程序中,我们在 db.migrations 资源文件夹中设置了版本化迁移

  • V1_0__create_table.sql
  • V1_1__apply_roles.sql
  • R__create_stored_proc.sql

版本化迁移(V1_0 和 V1_1)在应用程序启动时运行/验证 - 向上,但可重复迁移 (R__) 似乎根本没有触发

我们还有一个 afterMigrate.sql,它似乎被触发了。

有人可以帮助我了解在 Spring Boot 中触发可重复的 flyway 迁移的正确方法吗?

https://flywaydb.org/getstarted/repeatable

【问题讨论】:

    标签: java spring spring-boot flyway


    【解决方案1】:

    不幸的是,Spring Boot 1.x 默认附带一个古老版本的 Flyway (3.x)。更新到 Spring Boot 2.0 RC 或只是最新的 Flyway 版本 (5.x)。请注意,如果这是一个现有应用程序,您必须先迁移到 Flyway 4.2.0,以便为您自动升级 Flyway 的架构历史表。..

    【讨论】:

    • 我们如何做到这一点?我们现有用户使用 3.x flyway,并希望让每个人都使用 5.x
    • @Michael J Lawley 您可以覆盖您的依赖项(pom.xml 或 build.gradle)上的 flyway 版本。现在我被 spring boot 1 和 flyway 5.2.0 卡住了,它说 Caused by: org.postgresql.util.PSQLException: ERROR: null value in column "version_rank" 违反了非空约束。因为可重复的脚本名称中没有任何版本。
    • 我不得不使用 5.1.4 的 flyway 来摆脱我的 version_rank 问题。我建议使用 R__001_create_stored_proc.sql。如果您想订购许多可重复的脚本。
    猜你喜欢
    • 2018-12-19
    • 2020-11-15
    • 2016-09-12
    • 2018-08-16
    • 1970-01-01
    • 2020-05-13
    • 2017-10-24
    • 2018-12-11
    • 2021-07-10
    相关资源
    最近更新 更多