From 8fcc08ecb59d3be398c3fb1d266ef91a3179ff95 Mon Sep 17 00:00:00 2001 From: Infendro Date: Fri, 12 Dec 2025 21:40:26 +0100 Subject: [PATCH] refactor --- .../com/infendro/migration/Migration.kt | 50 +++++++++---------- .../migration/model/MigrationRepository.kt | 4 +- 2 files changed, 24 insertions(+), 30 deletions(-) diff --git a/src/main/kotlin/com/infendro/migration/Migration.kt b/src/main/kotlin/com/infendro/migration/Migration.kt index b89aca1..6cb2e3f 100644 --- a/src/main/kotlin/com/infendro/migration/Migration.kt +++ b/src/main/kotlin/com/infendro/migration/Migration.kt @@ -11,17 +11,35 @@ import org.slf4j.LoggerFactory internal val logger: Logger = LoggerFactory.getLogger("Database") +class MigrationConfig { + internal val migrations: MutableList = mutableListOf() + + fun migration( + name: String, + migrate: Transaction.() -> Unit, + ) { + if (migrations.any { it.name == name }) + throw DuplicateMigrationException(name) + + migrations += Migration(name, migrate) + } + + data class Migration( + val name: String, + val migrate: Transaction.() -> Unit, + ) +} + fun migrate( - config: Config + config: MigrationConfig, ) { transaction { SchemaUtils.create(MigrationTable) } for ((name, migrate) in config.migrations) { - if (MigrationRepository.exists(name)) { + if (MigrationRepository.exists(name)) continue - } transaction { try { @@ -37,32 +55,10 @@ fun migrate( } } -@Suppress("UNUSED") fun migrate( - configure: Config.() -> Unit + configure: MigrationConfig.() -> Unit, ) { - val config = Config() + val config = MigrationConfig() config.configure() migrate(config) } - -class Config { - internal val migrations: MutableList = mutableListOf() - - @Suppress("UNUSED") - fun migration( - name: String, - migrate: Transaction.() -> Unit, - ) { - if (migrations.any { it.name == name }) { - throw DuplicateMigrationException(name) - } - - migrations += Migration(name, migrate) - } - - data class Migration( - val name: String, - val migrate: Transaction.() -> Unit - ) -} diff --git a/src/main/kotlin/com/infendro/migration/model/MigrationRepository.kt b/src/main/kotlin/com/infendro/migration/model/MigrationRepository.kt index 53a818a..28f4be7 100644 --- a/src/main/kotlin/com/infendro/migration/model/MigrationRepository.kt +++ b/src/main/kotlin/com/infendro/migration/model/MigrationRepository.kt @@ -15,8 +15,6 @@ object MigrationRepository { name: String, ): Unit = transaction { MigrationEntity - .new { - this.name = name - } + .new { this.name = name } } }