These are chat archives for scalikejdbc/ja

17th
Oct 2016
jakelizzI
@jakelizzI
Oct 17 2016 09:45

play scala 2.5 でpostgresqlとscalikejdbcを利用しようと思っているのですが、2点ほど質問があります。
1.postgresqlのデータベース名がdefaultの時はうまくいくのですが、変更した場合は

[IllegalStateException: Connection pool is not yet initialized.(name:'default)]

が出てしまいます。データベース名を変更した場合はどのようにすればよろしいのでしょうか?

  1. ConnectionPoolにHikariCPを使用する場合は、BoneCPConnectionPoolのようなクラスを自作しなければならないのでしょうか?
Toshiyuki Takahashi
@tototoshi
Oct 17 2016 09:57
http://scalikejdbc.org/documentation/connection-pool.html 下の方にhikaricpの例があります
Kazuhiro Sera
@seratch
Oct 17 2016 09:58
play だったら scalikejdbc-play-dbapi-adapter を使うようにして http://scalikejdbc.org/documentation/playframework-support.html
scalikejdbc 関係ない Play の hikaricp 初期化設定して DbApi 経由で使うというのもアリですね。
jakelizzI
@jakelizzI
Oct 17 2016 10:03

@tototoshi さん ありがとうございます!

val dataSource: DataSource = {
  val ds = new HikariDataSource()
  ds.setDataSourceClassName(dataSourceClassName)
  ds.addDataSourceProperty("url", url)
  ds.addDataSourceProperty("user", user)
  ds.addDataSourceProperty("password", password)
  ds
}
ConnectionPool.singleton(new DataSourceConnectionPool(dataSource))

上記の記述は、どこに記述すればいいのでしょうか....

Toshiyuki Takahashi
@tototoshi
Oct 17 2016 10:04
あ、playの場合は瀬良さんの方法が良いと思います。
jakelizzI
@jakelizzI
Oct 17 2016 10:05
@seratch さん お答えありがとうございます!
scalikejdbc関係ないPlayのhikaricp初期化設定とは
https://www.playframework.com/documentation/2.5.x/SettingsJDBC
の方法でしょうか?
Manabu Nakamura
@gakuzzzz
Oct 17 2016 16:37

IllegalStateException: Connection pool is not yet initialized.

これが発生する場所がわかればもう少し建設的なコメントができるかもですね。

もし SQLSyntaxSupport を mixin した object の操作で出ている場合は、connectionPoolName を override して自分でつけた ConnectionPool の名前を指定するとよいかと思います。