You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Quarkus 2.9.2中Flyway无法读取配置占位符问题求助

Quarkus 2.9.2.Final Flyway占位符识别失败修复

问题背景

  • 配置路径:src/test/resources/application.properties
  • 已写入的Flyway占位符配置:
quarkus.flyway.placeholders.a=a
quarkus.flyway.placeholders.b=b
  • 迁移脚本中占位符使用方式:
create user ${a} with password '${b}';
  • 执行测试时抛出核心异常:
Caused by: org.flywaydb.core.api.FlywayException: No value provided for placeholder: ${a}.  Check your configuration!
    at org.flywaydb.core.internal.parser.PlaceholderReplacingReader.read(PlaceholderReplacingReader.java:165)
    at java.base/java.io.FilterReader.read(FilterReader.java:65)
    at org.flywaydb.core.internal.parser.PositionTrackingReader.read(PositionTrackingReader.java:33)
    at java.base/java.io.FilterReader.read(FilterReader.java:65)
    at org.flywaydb.core.internal.parser.RecordingReader.read(RecordingReader.java:33)
    at java.base/java.io.FilterReader.read(FilterReader.java:65)
    at org.flywaydb.core.internal.parser.PeekingReader.refillPeekBuffer(PeekingReader.java:73)
    at org.flywaydb.core.internal.parser.PeekingReader.peek(PeekingReader.java:183)
    at org.flywaydb.core.internal.parser.PeekingReader.peek(PeekingReader.java:165)
    at org.flywaydb.core.internal.parser.Parser.readToken(Parser.java:478)
    at org.flywaydb.core.internal.parser.Parser.getNextStatement(Parser.java:173)
    ... 73 more
  • 配置有效性验证:通过自定义@ConfigMapping类可正常读取到placeholders下的全部键值对,配置写入逻辑无问题。
@ConfigMapping(prefix = "quarkus.flyway")
interface MyConfig {
    Map<String,String> placeholders();
}

根因说明

Quarkus 2.9.x系列版本的Flyway扩展存在两处默认配置与预期不符的问题:

  1. 该版本默认关闭了Flyway占位符替换开关,未显式开启时,扩展不会将配置中定义的placeholders集合传递给底层Flyway引擎,因此引擎无法读取到任何占位符值
  2. 该版本修改了Flyway原生默认的占位符前后缀,原生默认前后缀为${和},Quarkus该版本默认配置为{和},与脚本中使用的${}格式不匹配

修复方法

在配置文件中补充两项显式配置即可解决:

# 显式开启占位符替换功能
quarkus.flyway.placeholder-replacement=true
# 显式指定占位符前后缀匹配${}写法
quarkus.flyway.placeholder-prefix=${
quarkus.flyway.placeholder-suffix=}

添加配置后重新执行测试,Flyway即可正常解析替换脚本中的占位符,异常消失。


内容的提问来源于stack exchange,提问作者syr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 17:03:17