Как решить проблему с лицензией FlyWay в Spring Boot Application

Приложение 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 ответ

Решение

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