Как решить проблему с лицензией 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);
}
}