[英]How to use JDBC-Authentication of Spring Boot/Spring Security with Flyway
[英]How to use Spring boot, JOOQ and Flyway together?
那么,讓我們考慮一個通用的Spring boot
應用程序,它使用JOOQ
進行數據庫數據庫訪問,使用Flyway
進行數據庫遷移。 項目使用gradle
進行依賴管理。
我想要以下東西:
gradle build
任務中生成代碼。 所以,我們看到錯誤的任務執行順序。我有一個非常相似的設置,但采用手動操作來生成 Jooq 類。 我需要它們進行開發,所以將生成延遲到目標環境對我來說沒有意義。
我決定運行一個本地 dB 用於開發目的。 我在 docker 中運行它,但這是整個設置中的一個細節。
當我有一個新的遷移時,我使用 flyway grade 插件針對本地 dB 運行它。 然后我用 grade Jooq 插件重新生成 Jooq 類。
當應用程序部署在目標環境中時,我依靠 flyway 在啟動時運行遷移。 我已經打包了匹配的 Jooq 類,所以一切都很順利。
jOOQ GitHub 項目有一個示例項目,該項目將 jOOQ 與 Spring Boot 和sql-maven-plugin
結合使用。
您可以輕松地將sql-maven-plugin
替換為Flyway 插件,如 jOOQ/Flyway 示例項目或此博客文章中所示。
在相關說明中,如果您將 jOOQ 的商業發行版之一與 Spring Boot 一起使用,請在此處的博客文章中對此進行記錄。
有如下gradle任務,需要flyway、otj-pg-embedded、jooq和postgresql驅動:
import com.opentable.db.postgres.embedded.*
import org.flywaydb.core.*
import org.jooq.codegen.*
tasks.named("compileKotlin") {
doFirst {
//create embedded postgresql
EmbeddedPostgres.builder().setPort(5400).start().use {
//migrate embedded posrtgresql
Flyway.configure()
.locations("filesystem:$projectDir/migrations/")
.schemas("public")
.dataSource(it.postgresDatabase)
.load()
.migrate()
//generate jooq classes
GenerationTool.generate("some xml for jooq")
}
}
}
來源是https://gist.github.com/whyoleg/63195b60eb85e8fe2114b30f28b892ef
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.