読者です 読者をやめる 読者になる 読者になる

/var/log/laughingman7743.log

I thought what I'd do was, I'd pretend I was one of those deaf-mutes or should I?

Playframework2.4 + Slick3.0で複数のデータベースに接続する

Playframework Slick Scala

@NamedDatabaseアノテーションをつければ対応するDB名のDatabaseConfigProviderをDIしてくれます*1が、 なんとなくDatabaseConfigProviderをDIしたくないなってことで、別の方法で実装してみた。
どちらにしてもPlay.currentに依存してるのであまり意味ないなと。。。

リポジトリは以下のようにDB名をDIする形。

DB名はモジュールを作ってDIする。

テスト時はテスト用のモジュールに入れ替えて、適当にインメモリのDBで済ませる。

テスト用のDB設定は設定ファイルでなく、Slick用のインメモリDB設定を作るヘルパーメソッドを用意しておくとテストケースごとにランダムなDBを利用できて良さそう。

build.sbtのjavaOptionsで、テスト時にテスト用の設定ファイルを読み込む設定を忘れずに。

設定ファイルは他の設定ファイルをincludeできるので、DB設定やモジュール設定等で分割して管理したほうがいろいろと捗る感じがします。

Enjoy!