slickのcase classをつくるのがめんどかったので、SQLを投げればcase classとTableを生成するスクリプト作りました。
(すでにslick-code-generatorとかある。車輪の再発明。。)
Schema code generation — Slick 2.0.0-RC1 documentation
作った経緯として、なんかslick-code-genが動かなくなって、原因追求の時間がなかったからさくっと作った感じです。
後悔はしていない。
実際、こんなcreate SQL文を投げると、
CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(100) DEFAULT NULL, `email` varchar(100) DEFAULT NULL, `password` varchar(100) DEFAULT NULL, `create_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `last_name` varchar(25) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1851 DEFAULT CHARSET=utf8;
case class usersDto( id: Int , name: String , email: String , password: String , createDate: DateTime , lastName: String ) class usersTable(tag: Tag) extends Table[usersDto](tag, "users") { def id: Column[Int] = column[Int]("id") def name: Column[String] = column[String]("name") def email: Column[String] = column[String]("email") def password: Column[String] = column[String]("password") def createDate: Column[DateTime] = column[DateTime]("create_date") def lastName: Column[String] = column[String]("last_name") def * = (id,name,email,password,create_date,last_name)<>(usersDto.tuppled, usersDto.unapply) }
こんなアウトプットになります。