如何解决 Spring Boot 应用程序中的 FlyWay 许可问题

我使用 FlyWay 企业许可证的 Spring Boot 应用程序无法启动并显示以下消息:


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)

许可证实际上并没有丢失。我尝试将两者都设置为环境变量和 application.yml 文件,名称为 spring >> flyway >> licenseKey,但它根本没有反应。


有什么想法可以隐藏问题吗?其他环境变量由 spring boot 考虑用于数据库,所以这不应该是问题。


长风秋雁
浏览 142回答 1
1回答

慕标琳琳

在 GitHub 上有一个很好的讨论。根据那个问题,Spring Boot 2.2 的路线图上似乎有一个基于属性的版本。显然现在你需要实现一个FlywayConfigurationCustomizer(未经测试):@Configurationpublic 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(也未经测试)......@Configurationpublic class FlywayConfiguration {    @Bean    public FlywayConfigurationCustomizer customizeLicense(                 @Value("${my-app.flyway.license}") String license) {        return configuration -> configuration.licenseKey(license);    }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java