在 CustomTaskChange 中执行 select?
Performing select in CustomTaskChange?
在 liquibase 中,我正在尝试使用 CustomTaskChange 来执行 "complex" 数据迁移。
伪代码如下所示:
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
感谢任何帮助
这是我终于找到的丑陋的解决方法:
val conn = (database.connection as JdbcConnection).wrappedConnection
之所以有效,是因为 DatabaseConnection 的所有可用实现都继承自 JdbcConnection ...
在 liquibase 中,我正在尝试使用 CustomTaskChange 来执行 "complex" 数据迁移。
伪代码如下所示:
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
感谢任何帮助
这是我终于找到的丑陋的解决方法:
val conn = (database.connection as JdbcConnection).wrappedConnection
之所以有效,是因为 DatabaseConnection 的所有可用实现都继承自 JdbcConnection ...