如何解决 Spring 引导应用程序中的 FlyWay 许可证问题
How to solve FlyWay license problem in Spring Boot Application
我的 Spring 使用 FlyWay 企业许可证的启动应用程序无法启动并显示以下消息:
Caused by: org.flywaydb.core.api.FlywayException: Missing license key.
Ensure flyway.licenseKey is set to a valid Flyway license key ("FL01" followed by 512 hex chars)
license其实并没有丢失。我尝试将两者都设置为环境变量和 application.yml 文件,名称为 spring >> flyway >> licenseKey,但它根本没有反应。
有什么想法可以隐藏问题吗?
spring boot for database 考虑了其他 env 变量,所以这不应该是问题所在。
对此有很好的讨论on GitHub。根据该问题,基于 属性 的版本似乎在 Spring Boot 2.2 的路线图上。
显然你现在需要实现一个FlywayConfigurationCustomizer
(未测试):
@Configuration
public class FlywayConfiguration {
@Bean
public FlywayConfigurationCustomizer customizeLicense(
@Value("${my-app.flyway.license}") String license) {
return new FlywayConfigurationCustomizer() {
@Override
public void customize(FluentConfiguration configuration) {
configuration.licenseKey(license);
}
};
}
}
我认为这可能可以简化为 lambda(也未经测试)...
@Configuration
public class FlywayConfiguration {
@Bean
public FlywayConfigurationCustomizer customizeLicense(
@Value("${my-app.flyway.license}") String license) {
return configuration -> configuration.licenseKey(license);
}
}
我的 Spring 使用 FlyWay 企业许可证的启动应用程序无法启动并显示以下消息:
Caused by: org.flywaydb.core.api.FlywayException: Missing license key.
Ensure flyway.licenseKey is set to a valid Flyway license key ("FL01" followed by 512 hex chars)
license其实并没有丢失。我尝试将两者都设置为环境变量和 application.yml 文件,名称为 spring >> flyway >> licenseKey,但它根本没有反应。
有什么想法可以隐藏问题吗? spring boot for database 考虑了其他 env 变量,所以这不应该是问题所在。
对此有很好的讨论on GitHub。根据该问题,基于 属性 的版本似乎在 Spring Boot 2.2 的路线图上。
显然你现在需要实现一个FlywayConfigurationCustomizer
(未测试):
@Configuration
public class FlywayConfiguration {
@Bean
public FlywayConfigurationCustomizer customizeLicense(
@Value("${my-app.flyway.license}") String license) {
return new FlywayConfigurationCustomizer() {
@Override
public void customize(FluentConfiguration configuration) {
configuration.licenseKey(license);
}
};
}
}
我认为这可能可以简化为 lambda(也未经测试)...
@Configuration
public class FlywayConfiguration {
@Bean
public FlywayConfigurationCustomizer customizeLicense(
@Value("${my-app.flyway.license}") String license) {
return configuration -> configuration.licenseKey(license);
}
}