import groovy.sql.Sql
class Migration {
static getSqlInstance(String orig_or_dest) {
Sql.newInstance(
"jdbc:oracle:thin:@asapp:1521:appdb",
orig_or_dest == 'orig' ? "usr1" : 'usr2',
orig_or_dest == 'orig' ? "pwd1" : 'pwd2',
"oracle.jdbc.driver.OracleDriver")
}
static migrateChargeItems() {
def dataset = []
getSqlInstance('orig').eachRow("select * from A_CHARGETREE"){ row ->
dataset << [row.id, row.name, row.description, row.parentId, row.leaf]
}
dataset.each{item ->
getSqlInstance('dest').execute("insert into CHARGE_ITEM (id, name, description, parent_id, leaf, version, deleted) values (${item[0]}, ${item[1]}, ${item[2]}, ${item[3]}, ${item[4]?:0}, 1, 0)")
}
}
static migrateProjects() {
def dataset = []
getSqlInstance('orig').eachRow("select * from A_PROJECT"){ row ->
dataset << [row.id, row.name, row.description]
}
dataset.each{item ->
getSqlInstance('dest').execute("insert into PROJECT (id, name, description, version, deleted) values (${item[0]}, ${item[1]}, ${item[2]?:item[1]}, 1, 0)")
}
}
static void main(String[] args) {
Migration.class.classLoader.rootLoader.addURL( new URL("file:///d:/workspace/timesheet-migration/lib/ojdbc6.jar") )
migrateChargeItems()
migrateProjects()
}
}