Как использовать Spring boot, JOOQ и Flyway вместе? - PullRequest
3 голосов
/ 20 апреля 2019

Итак, давайте рассмотрим общее приложение Spring boot, которое использует JOOQ для доступа к базе данных и Flyway для переноса базы данных. Проект использует gradle для управления зависимостями.

Я хочу следующие вещи:

  1. Запустите мое приложение в докере. Итак, я хочу использовать только переменные среды (https://12factor.net/config). Следовательно, я не знаю, как настроить и свойства приложения для весенней загрузки (логин и пароль базы данных) и gradle Логин и пароль базы данных плагина JOOQ.
  2. Автоматическая генерация JOOQ классов. Миграция Flyway запускается, когда приложение запущено. Но JOOQ генерирует код в gradle build задании. Итак, мы видим неправильный порядок выполнения задач.

Ответы [ 2 ]

2 голосов
/ 20 апреля 2019

У меня очень похожая настройка, но я прибегнул к ручным действиям для генерации классов Jooq. Они нужны мне для разработки, поэтому для меня нет смысла откладывать генерацию до целевой среды.

Я решил запустить локальный дБ для целей разработки. Я запускаю его в Docker, но это деталь всей установки.

Когда у меня есть новая миграция, я запускаю ее с плагином класса flyway против локального дБ. Затем я регенерирую классы Jooq с помощью плагина класса Jooq.

Когда приложение развертывается в целевой среде, я полагаюсь на flyway для запуска миграции при запуске. Я упаковал соответствующие классы Jooq, так что все работает гладко.

1 голос
/ 04 июля 2019

В проекте jOOQ GitHub есть пример проекта , который использует jOOQ с Spring Boot и sql-maven-plugin.

. Вы можете легко заменить sql-maven-plugin на плагин Flyway, как показано в пример проекта jOOQ / Flyway или этого сообщения в блоге .

В связанной заметке, если вы используете один из коммерческих дистрибутивов jOOQ с Spring Boot, это задокументировано в этом посте здесь .

...