Как решить проблему с лицензией FlyWay в Spring Boot Application - PullRequest
0 голосов
/ 10 февраля 2019

Приложение My Spring Boot, которое использует корпоративную лицензию 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)

Лицензия на самом деле не отсутствует.Я пытался установить как переменную env, так и в файле application.yml с именем spring >> flyway >> licenseKey, но он вообще не реагирует.

Любые идеи, где может быть скрыта проблема?Другие переменные env считаются весенней загрузкой для базы данных, поэтому это не должно быть проблемой.

1 Ответ

0 голосов
/ 10 февраля 2019

Существует хорошее обсуждение этого на 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);
            }
        };
    }
}

Я думаю, что это, вероятно, можно упростить до лямбды (также не проверено)...

@Configuration
public class FlywayConfiguration {
    @Bean
    public FlywayConfigurationCustomizer customizeLicense(
                 @Value("${my-app.flyway.license}") String license) {
        return configuration -> configuration.licenseKey(license);
    }
}
...