【问题标题】:Flyway customizing 'version' in naming conventionFlyway 在命名约定中自定义“版本”
【发布时间】:2022-05-24 04:29:44
【问题描述】:

我正在使用 Flyway 3.2.1。当前属性设置为:

flyway.sqlMigrationPrefix=V
flyway.sqlMigrationSuffix=.sql
flyway.initVersion=0000
flyway.outOfOrder=false

根据documentation版本可以是:

Dots or underscores separate the parts, you can use as many parts as you like

因此我想出了这个V_201509071234_Filename.sql,即使根据examples,我上面的名字应该是有效的。但是,在尝试执行时,它会抱怨:

Flyway 错误:org.flywaydb.core.api.FlywayException:版本无效 包含非数字字符。只有 0..9 和 .被允许。 无效版本:.201509071234

但是,如果我要在第一个下划线之前添加一个数字,例如 V2_201509071234_Filename.sql,它会起作用。

如何强制 Flyway 接受 V_201509071234_Filename.sql 作为有效名称?

【问题讨论】:

    标签: sql flyway


    【解决方案1】:

    将前缀设置为V_,将分隔符设置为_,应该可以(我希望)

    【讨论】:

    • 嗨 @alex,在运行 flyway:info 之后,我运行 flyway:validate 来验证脚本。但它无法验证,错误是,“验证失败。检测到已解决的迁移未应用于数据库”。但是,如果我删除 flyway:validate 它就可以了。知道为什么吗?
    • 在错误消息中说,有问题的迁移尚未执行。将目标设置为当前或先运行迁移,您应该可以。
    【解决方案2】:

    此名称将符合 flyway 约定:V201509071234_Filename.sql(V 和版本号之间没有下划线)。

    【讨论】:

      猜你喜欢
      • 2018-05-06
      • 2020-03-31
      • 2015-05-10
      • 2011-04-03
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多