如何通过 micronaut 应用程序配置设置 flyway 占位符?

How to set flyway placeholders via micronaut application config?

我正在尝试 运行 在配置了 Flyway 集成的 Micronaut 应用程序中的迁移脚本。该应用程序 运行 符合预期并应用了没有任何 Flyway 占位符的迁移脚本。但是,每当我将 Flyway 占位符添加到迁移脚本时,由于 FlywayException:

,应用程序不再启动
 org.flywaydb.core.api.FlywayException: No value provided for placeholder expressions: ${my_placeholder}.  Check your configuration!

我尝试使用 Micronaut Flyway 占位符配置 属性(如此处 https://micronaut-projects.github.io/micronaut-flyway/latest/guide/index.html#io.micronaut.configuration.dbmigration.flyway.FlywayConfigurationProperties 所述)在 application.yml 中配置占位符,但根本没有选择占位符。 application.yml 文件如下所示:

flyway:
  datasources:
    default:
      locations: classpath:migrations
      placeholders:
        my_placeholder: "some value"

我还尝试创建一个 flyway.properties 文件,其中的占位符根据此 SO 答案 中的描述定义,但这也不起作用

# flyway.properties
flyway.placeholders.my_placeholder=some value

在调试 Flyway 启动时(特别是在 PlaceholderReplacingLine 中)我注意到 placeholderReplacer 对象包含一个占位符,其中 _(下划线)已被 - 替换(破折号)。在迁移脚本中将 my_placeholder 更改为 my-placeholder 解决了这个问题。