【问题标题】:How to remove prefix from Flyway migration name?如何从 Flyway 迁移名称中删除前缀?
【发布时间】:2021-11-23 03:04:46
【问题描述】:

默认情况下,Flyway 在文件夹db/migration 中搜索以“V”开头的迁移,例如: V1_1_0__init_schema.sql

但是,我的迁移具有以下命名模式(并且我无法更改我的迁移名称): 20210902193819451__init_schema.sql

如何从 Flyway 的默认行为中删除字母“V”,以便可以找到我的迁移?

我已经尝试在我的配置文件中设置以下属性: spring.flyway.sql-migration-prefix: "",但这不起作用,我收到以下错误:

init 方法调用失败;嵌套异常是 org.flywaydb.core.api.exception.FlywayValidateException:验证 failed:迁移验证失败

【问题讨论】:

  • 我在spring.flyway.sql-migration-prefix: "" 上使用与您相同的文件格式测试了配置,并且成功了。您能否详细说明您的资源路径、使用情况和堆栈跟踪?

标签: java spring flyway


【解决方案1】:

在这种情况下,Flyway 是 Spring 托管的 bean。您的配置应为spring.flyway.sql-migration-prefix=V,如here 所述。

注意,因为数据库迁移意味着versioningundorepeatable 迁移具有不同的前缀。您还应该注意,实体验证可能来自 Flyway(来自表 flyway_schema_history),它检查您的脚本校验和,以及 Hibernate,它检查您的 @Entity 模型。

【讨论】:

  • 是的,我正在使用属性spring.flyway.sql-migration-prefix(我已经编辑了我的问题)。但问题是我想从默认行为中删除V
  • @Caroline 您可以尝试使用 flyway 配置文件来更改配置吗?格式为db/migration/conf/flyway.conf 并使用flyway.sql-migration-prefix 指定here
  • 使用spring.flyway.sql-migration-prefix(我已经有)设置配置并创建文件flyway.conf并开始使用flyway.sql-migration-prefix不一样吗?
【解决方案2】:

我解决了将以下配置添加到我的application.yml 文件的问题:

spring.flyway.sql-migration-prefix: "20"
spring.flyway.sql-migration-separator: "_"

我没有删除前缀,而是简单地替换了它。

【讨论】:

    猜你喜欢
    • 2017-03-16
    • 2018-10-14
    • 2022-01-01
    • 2023-03-29
    • 1970-01-01
    • 2018-04-08
    • 2014-06-03
    • 1970-01-01
    • 2021-10-04
    相关资源
    最近更新 更多