概要
Play! frameworkでは「H2インメモリーデータベース」を手軽に使用できるため、ストレスなくデータベースの構成をあれこれ試行錯誤できます。
H2 インメモリーデータベースは、Play が再起動した時に、evolution を 1 から実行できるため、 開発時に非常に便利です。
データベースの構成をあれこれ試行錯誤しながら開発するのってどうよ、というツッコミは聞かなかったことにします :P
ふと、Playを実行中にメモリー上のデータベースに作られたテーブルの構成やデータを直接見たいと思い、あれこれググって得た成果をまとめてみます。
Play framework 開発中のデータベース参照方法
application.conf のデータベース定義
db.default.driver=org.h2.Driver db.default.url="jdbc:h2:mem:play;MODE=MYSQL" db.default.user=sa db.default.password=""
「MODE=MYSQL」の部分は本番環境に合わせて。
他のデータベースの定義は下記リンクを参照してください。
Developing-with-the-H2-Database
Playアプリケーション実行
コンソール(端末)を起動して、いつものように play を起動します。
$ play [info] Loading project definition from /path/to/play-app/project [info] Set current project to play-app (in build file:/path/to/play-app/) _ _ _ __ | | __ _ _ _| | | '_ \| |/ _' | || |_| | __/|_|\____|\__ (_) |_| |__/ play! 2.1.3 (using Java 1.7.0_25 and Scala 2.10.0), http://www.playframework.org > Type "help play" or "license" for more information. > Type "exit" or use Ctrl+D to leave this console.
h2-browser 実行
h2-browser コマンドを実行します。
[play-app] $ h2-browser Web Console server running at http://127.0.1.1:8082 (others can connect) TCP server running at tcp://127.0.1.1:9092 (only local connections) PG server running at pg://127.0.1.1:5435 (only local connections) [play-app] $ Gtk-Message: Failed to load module "overlay-scrollbar" 既存のブラウザ セッションに新しいウィンドウが作成されました。
h2-browser コマンドを実行すると、OS既定のブラウザ上に「H2コンソール」画面が表示されます。
画面上の各項目は次の表のように設定してください。
項目 | 値 | 備考 |
---|---|---|
保存済設定 | 「Generic H2 (Embedded)」を選択 | |
設定名 | Generic H2 (Embedded) | 任意の文字列 |
ドライバクラス | org.h2.Driver | application.conf に定義した db.default.driver の値 |
JDBC URL | jdbc:h2:mem:play;MODE=MYSQL | application.conf に定義した db.default.url の値 |
ユーザ名 | sa | application.conf に定義した db.default.user の値 |
パスワード | (なし) | application.conf に定義した db.default.password の値 |
Webアプリケーション起動
h2-browser コマンドを実行後、Enterキーでplayのプロンプトに戻ります。
戻ったら run や ~run、start などでWebアプリケーションを起動します。
[play-app] $ run --- (Running the application from SBT, auto-reloading is enabled) --- [info] play - Listening for HTTP on /0:0:0:0:0:0:0:0:9000 (Server started, use Ctrl+D to stop and go back to the console...)
Evolution
ブラウザで http://localhost:9000/ にアクセスして「evolution」な画面が表示されたら、いつものように【Apply this script now!】ボタンをクリックします。
H2コンソールからデータベースに接続
【Apply this script now!】ボタンのクリックにより正常にデータベースが生成されてWebアプリケーションの画面が表示されたのを確認した後に、さきほどの「H2コンソール」画面で【接続】ボタンをクリックすると、データベースを操作する画面が表示されます。