diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/publish.yaml similarity index 95% rename from .gitea/workflows/ci.yaml rename to .gitea/workflows/publish.yaml index 73a9a03..2fb6dd3 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/publish.yaml @@ -19,7 +19,7 @@ jobs: uses: actions/cache@v4 with: key: gradle-${{ hashFiles('**/libs.versions.toml') }} - restore-keys: gradle- + restore-keys: gradle path: | ~/.gradle/caches/ ~/.gradle/wrapper/ diff --git a/README.md b/README.md index 6e87166..9abac39 100644 --- a/README.md +++ b/README.md @@ -12,17 +12,13 @@ repositories { } dependencies { - implementation("com.infendro:ktor-migration:1.1.1") + implementation("com.infendro:ktor-migration:1.2.0") } ``` ## Usage ```kotlin -import com.infendro.ktor.migration.Migration -import io.ktor.server.application.* -import org.jetbrains.exposed.sql.Database - fun Application.configureDatabase() { // connect to a database Database.connect(/* parameters */) diff --git a/build.gradle.kts b/build.gradle.kts index 09c9e12..995db95 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,7 +2,7 @@ import com.infendro.plugin.infendro import com.infendro.plugin.token group = "com.infendro" -version = "1.1.1" +version = "1.2.0" plugins { alias(libs.plugins.infendro) @@ -16,9 +16,10 @@ repositories { } dependencies { - implementation(libs.migration) implementation(libs.ktor.server) + implementation(libs.migration) implementation(libs.exposed) + implementation(libs.exposed.jdbc) } publishing { diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c7f183f..0f3b5e1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,15 +1,16 @@ [versions] -infendro = "1.0.0" -kotlin = "2.2.21" -ktor = "3.3.3" -exposed = "0.61.0" -migration = "1.1.1" +infendro = "1.1.0" +kotlin = "2.3.0" +ktor = "3.4.0" +migration = "1.2.0" +exposed = "1.0.0" [plugins] infendro = { id = "com.infendro.plugin", version.ref = "infendro" } kotlin = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } [libraries] -migration = { module = "com.infendro:migration", version.ref = "migration" } ktor-server = { module = "io.ktor:ktor-server-core-jvm", version.ref = "ktor" } +migration = { module = "com.infendro:migration", version.ref = "migration" } exposed = { module = "org.jetbrains.exposed:exposed-core", version.ref = "exposed" } +exposed-jdbc = { module = "org.jetbrains.exposed:exposed-jdbc", version.ref = "exposed" } diff --git a/src/main/kotlin/com/infendro/ktor/migration/Plugin.kt b/src/main/kotlin/com/infendro/ktor/migration/Plugin.kt index 028ea7c..ecb0216 100644 --- a/src/main/kotlin/com/infendro/ktor/migration/Plugin.kt +++ b/src/main/kotlin/com/infendro/ktor/migration/Plugin.kt @@ -2,20 +2,18 @@ package com.infendro.ktor.migration import com.infendro.migration.migrate import io.ktor.server.application.* -import org.jetbrains.exposed.sql.Transaction +import org.jetbrains.exposed.v1.jdbc.JdbcTransaction -val Migration = createApplicationPlugin( - name = "Migration", - createConfiguration = { MigrationConfig() }, -) { +val Migration = createApplicationPlugin("Migration", MigrationConfig::new) { migrate(pluginConfig.config) } class MigrationConfig { internal val config = com.infendro.migration.MigrationConfig() - fun migration( - name: String, - migrate: Transaction.() -> Unit, - ) = config.migration(name, migrate) + fun migration(name: String, migrate: JdbcTransaction.() -> Unit) = config.migration(name, migrate) + + companion object { + fun new() = MigrationConfig() + } }