ぜったいってなに

Software Engineerのブログです。

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/default1.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

下記を参考に設定。

PlaySlick - 2.4.x

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効かせてるのに起動後に画面に何も出ないし
ログにも何も出てないので連携そのものに失敗しているっぽい。



今日は解決できず、断念。