diff --git a/exposed-core/src/main/kotlin/org/jetbrains/exposed/sql/SchemaUtils.kt b/exposed-core/src/main/kotlin/org/jetbrains/exposed/sql/SchemaUtils.kt index a4d838bd1b..1051e16716 100644 --- a/exposed-core/src/main/kotlin/org/jetbrains/exposed/sql/SchemaUtils.kt +++ b/exposed-core/src/main/kotlin/org/jetbrains/exposed/sql/SchemaUtils.kt @@ -590,6 +590,12 @@ object SchemaUtils { * to use a lock based on synchronization with a dummy table. * @see SchemaUtils.withDataBaseLock */ + @Deprecated( + "Execution of this function might lead to unpredictable state in the database if a failure occurs at any point. " + + "To prevent this, please use `MigrationUtils.statementsRequiredForDatabaseMigration` with a third-party migration tool (e.g., Flyway).", + ReplaceWith("MigrationUtils.statementsRequiredForDatabaseMigration"), + DeprecationLevel.WARNING + ) fun createMissingTablesAndColumns(vararg tables: Table, inBatch: Boolean = false, withLogs: Boolean = true) { with(TransactionManager.current()) { db.dialect.resetCaches() @@ -631,6 +637,11 @@ object SchemaUtils { * By default, a description for each intermediate step, as well as its execution time, is logged at the INFO level. * This can be disabled by setting [withLogs] to `false`. */ + @Deprecated( + "This function will be removed in future releases.", + ReplaceWith("MigrationUtils.statementsRequiredForDatabaseMigration"), + DeprecationLevel.WARNING + ) fun statementsRequiredToActualizeScheme(vararg tables: Table, withLogs: Boolean = true): List { val (tablesToCreate, tablesToAlter) = tables.partition { !it.exists() } val createStatements = logTimeSpent("Preparing create tables statements", withLogs) {