Проблемы с Flyway(6.5.7) и пружинной загрузкой 2.5.x?

#java #spring-boot #flyway

Вопрос:

Мы используем Flyway 6.5.7 и пытаемся перейти с Spring Boot 2.4.13 на Spring Boot 2.5.x. Приложение построено с использованием Gradle 7.2.

До обновления весенней загрузки все работает нормально, но после этого создание компонента завершается ошибкой с этой ошибкой при запуске приложения:

Не удалось создать экземпляр [org.flywaydb.core.Flyway]: Заводской метод «flyway» выдал исключение; вложенное исключение-java.lang.Исключение IllegalArgumentException: Имя не должно быть пустым», «level»:»WARN»,»thread»:»main»,»logClass»:»o.s.c.s.AbstractApplicationContext»,»logMethod»:»refresh»}

Если мы отключим Flyway, приложение отлично запустится с Spring Boot 2.5.x.

И если мы вернемся к версии Spring Boot более ранней, чем 2.5.x, и снова активируем Flyway, он будет работать нормально…

Итак, что случилось с Flyway и Spring Boot 2.5.x?

Комментарии:

1. Какова полная трассировка стека, в идеале не в JSON, при сбое?

2. Сама Spring Boot 2.5 использует Flyway 7.7.3, поэтому я подозреваю, что ваша текущая версия flyway слишком стара для использования с Spring Boot 2.5. Я бы предложил обновить (и не вручную управлять зависимостями flyway, а использовать версию из spring Boot).

3. @M. Deinum: Но Flyway 7.x и выше не являются изданиями «сообщества»? Если мы удалим версию Flyway из файла сборки, она будет использовать версию 7.1.1, для которой требуется лицензия: «Требуется обновление Flyway Teams Edition или Sybase ASE: Sybase ASE 16.0 больше не поддерживается редакцией сообщества Flyway, но все еще поддерживается редакцией Flyway Teams».

4. Тогда не обновляйте spring. Flyway является коммерческим для определенных баз данных, в настоящее время той, которую вы используете, поэтому либо платите за лицензию (и сможете использовать новые функции), либо не торгуйте и придерживайтесь старой версии Spring Boot.

5. @M. Дейнум Скажи это Снику 🙂