在CustomTaskChange中执行选择?

时间:2018-09-26 08:52:51

标签: liquibase

在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

任何帮助表示赞赏

1 个答案:

答案 0 :(得分:0)

这是我终于找到的丑陋的解决方法:

class CollectionViewCell: UICollectionViewCell {

@IBOutlet weak var imagecollection: UIImageView!

@IBOutlet weak var imageview2: UIImageView!

@IBOutlet weak var imageview3: UIImageView!

@IBOutlet weak var imageview4: UIImageView!

}

它之所以有效,是因为DatabaseConnection的所有可用实现都继承自JdbcConnection ...