Skip to content

Instantly share code, notes, and snippets.

@whyoleg
Created February 12, 2020 10:21
Show Gist options
  • Save whyoleg/2bf6d8e66d74297ee4239a585ee0f364 to your computer and use it in GitHub Desktop.
Save whyoleg/2bf6d8e66d74297ee4239a585ee0f364 to your computer and use it in GitHub Desktop.
jooq config
import com.opentable.db.postgres.embedded.*
import org.flywaydb.core.*
import org.jooq.codegen.*
import org.redundent.kotlin.xml.*
import dev.whyoleg.kamp.dependency.classifier.*
kampJvmCommon {
plugins(Plugins.flyway)
source {
main {
implementation {
with(Dependencies) {
+vertx.jooq
+javaxAnnotations
}
+Modules.Server.api
}
}
}
}
tasks.named("compileKotlin") {
doFirst {
EmbeddedPostgres.builder().setPort(5400).start().use {
Flyway.configure()
.locations("filesystem:$projectDir/migrations/")
.schemas("public")
.dataSource(it.postgresDatabase)
.load()
.migrate()
GenerationTool.generate(xml("configuration") {
xmlns = "http://www.jooq.org/xsd/jooq-codegen-3.11.0.xsd"
"logging"("DEBUG")
"jdbc" {
"driver"("org.postgresql.Driver")
"url"("jdbc:postgresql://localhost:5400/postgres")
"user"("postgres")
"password"("postgres")
}
"generator" {
"name"("io.github.jklingsporn.vertx.jooq.generate.classic.ClassicReactiveVertxGenerator")
"database" {
"name"("org.jooq.meta.postgres.PostgresDatabase")
"inputSchema"("public")
"includeTables"("true")
"includeRoutines"("true")
"includePackages"("false")
"includeUDTs"("true")
"includeSequences"("true")
}
"generate" {
"javaTimeTypes"("true")
"deprecated"("false")
"interfaces"("true")
"fluentSetters"("true")
"daos"("true")
}
"target" {
"packageName"("somePackageName")
"directory"("$projectDir/src/main/java")
"clean"("true")
}
"strategy" {
"name"("io.github.jklingsporn.vertx.jooq.generate.VertxGeneratorStrategy")
}
}
}.toString(false))
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment