Slick の Code-generation で View を除外したい
VIEWの変更権限を持っていないデータベースからコード生成を行おうとしています。
ドキュメントにはAPIをoverrideするように書いてありましたがやり方がわかりませんでした。
使用ライブラリのバージョン
scala 2.11.6
slick 3.0.3
slick-codegen 3.0.3
mysql-connector-java 5.1.36
ドキュメント
http://slick.typesafe.com/doc/3.0.3/code-generation.html#customization
ドキュメントで紹介されているExample
https://github.com/slick/slick-codegen-customization-example
ソースコードはこちらになります。
def custom = {
val slickDriver = "slick.driver.MySQLDriver"
val jdbcDriver = "org.gjt.mm.mysql.Driver"
val url = "jdbc:mysql://localhost/test?characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull"
val outputFolder = "src/main/scala"
val pkg = "gen"
val user = "userName"
val pass = "password"
val driver: JdbcProfile =
Class.forName(slickDriver + "$").getField("MODULE$").get(null).asInstanceOf[JdbcProfile]
val dbFactory = driver.api.Database
val db = dbFactory.forURL(url, driver = jdbcDriver,
user = Some(user).getOrElse(null), password = Some(pass).getOrElse(null), keepAliveConnection = true)
try {
val m = Await.result(db.run(driver.createModel(None, false)(ExecutionContext.global).withPinnedSession), Duration.Inf)
new SourceCodeGenerator(m).writeToFile(slickDriver, outputFolder, pkg)
} finally db.close
}
よろしくお願いします。