Liquibase kotlin(DSL, Wrapper client, ORM integration) Help

jOOQ

Install

Add bellow code your build.gradle.kts

dependencies { implementation("io.github.momosetkn:liquibase-kotlin-custom-jooq-change:4.32.0-0.9.2") }

Use customKomapperJdbcChange

execute is required, rollback is optional. the callback argument type is org.jooq.DSLContext.

import momosetkn.liquibase.kotlin.parser.KotlinCompiledDatabaseChangeLog import momosetkn.liquibase.kotlin.change.custom.komapper.customJooqChange class CompiledDatabaseChangelog1 : KotlinCompiledDatabaseChangeLog({ changeSet(author = "your_name", id = "20241007-2000-1") { customJooqChange( execute = { db -> val query = """ CREATE TABLE created_by_komapper ( id uuid NOT NULL, name character varying(256) ); """.trimIndent() db.execute(query) }, rollback = { db -> val query = "DROP TABLE created_by_komapper" db.execute(query) }, ) } })
databaseChangeLog { changeSet(author = "your_name", id = "20241007-2000-1") { customJooqChange( execute = { db -> val query = """ CREATE TABLE created_by_komapper ( id uuid NOT NULL, name character varying(256) ); """.trimIndent() db.execute(query) }, rollback = { db -> val query = "DROP TABLE created_by_komapper" db.execute(query) }, ) } }

Configure org.jooq.DSLContext

override the momosetkn.liquibase.kotlin.change.custom.jooq.LiquibaseJooqConfig.provideDSLContext

example code

fun provideDSLContext( javaxSqlDataSource: javax.sql.DataSource, liquibaseDatabaseShortName: String ): org.jooq.DSLContext { return DefaultDSLContext(javaxSqlDataSource, getDialect(liquibaseDatabaseShortName)) } momosetkn.liquibase.kotlin.change.custom.jooq.LiquibaseJooqConfig.provideDSLContext = ::provideDSLContext
Last modified: 21 March 2025