Создание миграций SQL из открытой таблицы orm

#kotlin #flyway #kotlin-exposed

Вопрос:

Я хотел бы знать, как я могу генерировать миграции сценариев SQL из моих таблиц, созданных с использованием открытого ORM. Это было бы очень полезно для меня, так как я могу использовать Flyway для применения миграций на более позднем этапе.

Я использую JDK 16 с Kotlin.

Итак, главный вопрос здесь будет заключаться в следующем: есть ли какой-либо инструмент, который может помочь мне создать эти сценарии миграции?

Ответ №1:

Вы можете использовать SchemaUtils.createStatements() для создания DDL на основе определений таблиц.

 println(SchemaUtils.createStatements(Cities, Users).joinToString("nn") { "$it;" }
 

SchemaUtils.kt
https://github.com/JetBrains/Exposed/blob/621dc5b939b03c0f2396073c17f7ab5a7022816c/exposed-core/src/main/kotlin/org/jetbrains/exposed/sql/SchemaUtils.kt#L93

К сожалению, я не смог найти никакой документации. Но SchemaUtils.create() использует его внутренне. Так что это должно сработать.

Открытая версия: 0.36.2