我正在尝试在配置有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答案https://stackoverflow.com/a/9420671/2185719中描述的内容定义的,但这也不起作用
# flyway.properties
flyway.placeholders.my_placeholder=some value
答案 0 :(得分:1)
在调试Flyway启动时(特别是在PlaceholderReplacingLine
中),我注意到placeholderReplacer
对象持有一个占位符,其中_
(下划线)已被-
代替(破折号) )。在迁移脚本中将my_placeholder
更改为my-placeholder
可以解决此问题。