2010年10月22日金曜日

groovyとH2 Databaseで指定したPostgreSQLユーザの所有テーブルへのリンクテーブルを作成する

groovyとH2 Databaseで指定したPostgreSQLユーザの所有テーブルへのリンクテーブルを作成するには、以下のコードを実行します。

import groovy.sql.Sql

jdbcUrlPg = "jdbc:postgresql://localhost:5432/yourdb"
jdbcUserPg = "postgres"
jdbcPasswordPg = "postgres"
jdbcDriverPg = "org.postgresql.Driver"
sql = Sql.newInstance(
jdbcUrlPg,
jdbcUserPg,
jdbcPasswordPg,
jdbcDriverPg)

sql2 = Sql.newInstance(
"jdbc:h2:tcp://localhost/~/test",
"sa",
"",
"org.h2.Driver")

tablePrefix = "LT_"
query = """
select tablename
from pg_tables
where tableowner = user
and schemaname = 'public'
"""

// 接続ユーザが所有者でpublic schemaのテーブルへのリンクを作成
sql.eachRow(query){
println("creating...:${tablePrefix}${it.tablename}")
sql2.execute("create linked table " +
tablePrefix + it.tablename + "('" +
jdbcDriverPg + "', '" + jdbcUrlPg +
"', '" + jdbcUserPg + "', '" +
jdbcPasswordPg + "', '" + it.tablename + "')"
)
}



動作環境
groovy 1.7.4, JDK6 Update 21, H2 Database 1.2.143 (2010-09-18)

0 件のコメント:

コメントを投稿