diff --git a/src/main/kotlin/com/infendro/migration/Migration.kt b/src/main/kotlin/com/infendro/migration/Migration.kt index f965fa5..b89aca1 100644 --- a/src/main/kotlin/com/infendro/migration/Migration.kt +++ b/src/main/kotlin/com/infendro/migration/Migration.kt @@ -1,5 +1,6 @@ package com.infendro.migration +import com.infendro.migration.exception.DuplicateMigrationException import com.infendro.migration.model.MigrationRepository import com.infendro.migration.model.MigrationTable import org.jetbrains.exposed.sql.SchemaUtils @@ -53,6 +54,10 @@ class Config { name: String, migrate: Transaction.() -> Unit, ) { + if (migrations.any { it.name == name }) { + throw DuplicateMigrationException(name) + } + migrations += Migration(name, migrate) } diff --git a/src/main/kotlin/com/infendro/migration/exception/DuplicateMigrationException.kt b/src/main/kotlin/com/infendro/migration/exception/DuplicateMigrationException.kt new file mode 100644 index 0000000..b8ba5c4 --- /dev/null +++ b/src/main/kotlin/com/infendro/migration/exception/DuplicateMigrationException.kt @@ -0,0 +1,5 @@ +package com.infendro.migration.exception + +class DuplicateMigrationException( + val name: String, +) : Exception()