Play Scala DB connection
やってみる。
Play * slick * PostgreSQL
設定
/build.sbt
こんなかんじ。
name := """play_test""" version := "1.0-SNAPSHOT" lazy val root = (project in file(".")).enablePlugins(PlayScala) scalaVersion := "2.11.7" libraryDependencies ++= Seq( cache, ws, "org.postgresql" % "postgresql" % "42.1.4", "com.typesafe.play" %% "play-slick" % "2.0.2", "com.typesafe.play" %% "play-slick-evolutions" % "2.0.2" )
slick-evolutions
というのは、/conf/evolutions/default
に1.sql
, 2.sql
, … のように
SQL文を書いたファイルをおいておくと、最初にそれを実行してくれるslickのプラグインで、
Playはevolutionsをサポートしているそうです。
Railsのmigrationと違うけどちょっと似てる。
ちなみに最新版のslickを使いたくて以下のように書いていたが、
activator run
が通らなかったので差し替えた。
(PostgreSQL用のJDBCは最新版で大丈夫、っぽい。)
"org.postgresql" % "postgresql" % "42.1.4", "com.typesafe.play" % "play-slick_2.11" % "3.0.1", "com.typesafe.play" % "play-slick-evolutions_2.11" % "3.0.1"
/conf/application.conf
下記を参考に設定。
db { slick.dbs.default.driver="slick.driver.PostgresDriver$" slick.dbs.default.db.dataSourceClass = "slick.jdbc.DatabaseUrlDataSource" slick.dbs.default.db.properties.driver = "org.postgresql.Driver" slick.dbs.default.db.user=play slick.dbs.default.db.password="play" }
DB playdb
は予め作成済み。
localでPostgreSQLを起動し、activator run
してみる。
が、特に反応なし。
evolutions
効かせてるのに起動後に画面に何も出ないし
ログにも何も出てないので連携そのものに失敗しているっぽい。
今日は解決できず、断念。