В liquibase я пытаюсь использовать CustomTaskChange для выполнения «сложной» миграции данных.
Псевдокод будет выглядеть следующим образом:
class ChangeSet031 : CustomTaskChange {
@Throws(CustomChangeException::class)
override fun execute(database: Database) {
val rows = database.select("select * from mytable")
rows.forEach { row ->
val content = parseJson(row.mycolumn)
val sql = "insert into mynewtable (col1, col2) values (?, ?)"
database.insert(sql, content.col1, content.col2)
}
}
Проблема заключается в следующем: я делаюне найти способ выполнить database.select и database.insert
Как минимум, я хотел бы получить обратно базовый java.sql.Connection, чтобы я мог использовать с ним чистый JDBC
Документация по этому вопросу невелика: http://www.liquibase.org/documentation/changes/custom_change.html
А также примеры: https://github.com/liquibase/liquibase/tree/master/liquibase-core/src/test/java/liquibase/change/custom
Любая помощь приветствуется