diff --git a/build.gradle b/build.gradle index a5be1421..48aba51b 100644 --- a/build.gradle +++ b/build.gradle @@ -57,7 +57,7 @@ task javadocJar(type: Jar) { } group 'com.improve_future' -version '1.1.23' +version '1.1.24' apply plugin: "com.gradle.plugin-publish" apply plugin: 'kotlin' diff --git a/src/main/kotlin/com/improve_future/harmonica/core/adapter/DbAdapter.kt b/src/main/kotlin/com/improve_future/harmonica/core/adapter/DbAdapter.kt index 4de00c65..890115f5 100644 --- a/src/main/kotlin/com/improve_future/harmonica/core/adapter/DbAdapter.kt +++ b/src/main/kotlin/com/improve_future/harmonica/core/adapter/DbAdapter.kt @@ -40,7 +40,7 @@ internal abstract class DbAdapter(private val connection: ConnectionInterface) { abstract fun createTable(tableName: String, tableBuilder: TableBuilder) fun dropTable(tableName: String) { - execute("DROP TABLE $tableName;") + execute("DROP TABLE $tableName") } abstract fun createIndex( diff --git a/src/main/kotlin/com/improve_future/harmonica/service/VersionService.kt b/src/main/kotlin/com/improve_future/harmonica/service/VersionService.kt index 3ad8a6dd..f92e1c9c 100644 --- a/src/main/kotlin/com/improve_future/harmonica/service/VersionService.kt +++ b/src/main/kotlin/com/improve_future/harmonica/service/VersionService.kt @@ -20,6 +20,7 @@ package com.improve_future.harmonica.service import com.improve_future.harmonica.core.AbstractMigration import com.improve_future.harmonica.core.Connection +import com.improve_future.harmonica.core.Dbms import java.nio.file.Paths import java.sql.ResultSet import java.sql.Statement @@ -86,13 +87,24 @@ class VersionService(private val migrationTableName: String) { val statement = connection.createStatement() try { - val resultSet = statement.executeQuery( - """ - SELECT version - FROM $migrationTableName - ORDER BY version DESC - LIMIT 1""".trimIndent() - ) + val resultSet: ResultSet + when (connection.config.dbms) { + Dbms.Oracle -> { + resultSet = statement.executeQuery(""" + SELECT version + FROM $migrationTableName + ORDER BY version DESC + FETCH FIRST 1 ROWS ONLY""".trimIndent()) + } + else -> { + resultSet = statement.executeQuery(""" + SELECT version + FROM $migrationTableName + ORDER BY version DESC + LIMIT 1""".trimIndent()) + } + } + if (resultSet.next()) result = resultSet.getString(1) resultSet.close() statement.close()