如何一起使用Spring启动,JOOQ和Flyway?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何一起使用Spring启动,JOOQ和Flyway?相关的知识,希望对你有一定的参考价值。

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

我想要以下事项:

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

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

为了开发目的,我决定运行一个本地dB。我在docker中运行它,但这是整个设置中的一个细节。

当我有一个新的迁移时,我使用flyway grade插件对着本地dB运行它。然后我用等级Jooq插件重新生成Jooq类。

当应用程序部署在目标环境中时,我依靠flyway在启动时运行迁移。我有匹配的Jooq课程,所以一切顺利。

另一答案

jOOQ GitHub项目有一个example project,使用jOOQ与Spring Boot和sql-maven-plugin

您可以轻松地用飞路插件替换sql-maven-plugin,如jOOQ/Flyway example projectthis blog post所示。

在相关的说明中,如果您使用jOOQ的商业发行版之一与Spring Boot,这是记录in this blog post here

以上是关于如何一起使用Spring启动,JOOQ和Flyway?的主要内容,如果未能解决你的问题,请参考以下文章

jooQ spring boot Multiple Schema(读写拆分)

将 UNNEST 与 jOOQ 一起使用

Spring Boot with JOOQ 和 Spring Data JPA 之间的技术差异

如何使用 JOOQ 和 Spring-boot 2.0 进行手动事务管理?

如何正确处理与 jooq 的连接?

使用 Spring Boot 进行 JOOQ SQL 语法转换