如何结合使用Spring boot、JOOQ和Flyway?

Max*_*Max 5 java spring jooq flyway spring-boot

因此,让我们考虑一个通用Spring boot应用程序,它用于JOOQ数据库数据库访问和Flyway数据库迁移。该项目用于gradle依赖管理。

我想要以下东西:

  1. 在 docker 中运行我的应用程序。所以,我只想在环境变量中使用(https://12factor.net/config)。因此,我不知道如何配置Spring Boot 应用程序属性(数据库登录名和密码)和 gradle JOOQ 插件数据库登录名和密码。
  2. 自动生成JOOQ类。Flyway 迁移在应用程序启动时运行。但是JOOQ在任务中生成代码gradle build。因此,我们看到任务执行的顺序错误。

Les*_*iak 5

我有一个非常相似的设置,但采用手动操作来生成 Jooq 类。我需要它们进行开发,因此将生成延迟到目标环境对我来说是没有意义的。

我决定运行一个本地数据库用于开发目的。我在 docker 中运行它,但这是整个设置中的一个细节。

当我进行新的迁移时,我使用 Flyway Grade 插件针对本地 dB 运行它。然后我用 Grade Jooq 插件重新生成 Jooq 类。

当应用程序部署在目标环境中时,我依靠 Flyway 在启动时运行迁移。我已经打包了匹配的 Jooq 类,所以一切都很顺利。

  • 如果你使用gradle,你也可以使用:https://github.com/ayedo/jooq-modelator (2认同)