§H2データベース
注: Play 2.6.x以降では、H2依存関係を自分で含める必要があります。これを行うには、build.sbtに以下を追加するだけです。
libraryDependencies += "com.h2database" % "h2" % "1.4.192"
インメモリH2データベースは、Playが再起動されると進化が最初から実行されるため、開発に非常に便利です。Anormを使用している場合は、計画している本番データベースを密接に模倣する必要があるでしょう。特定のデータベースを模倣したいことをh2に伝えるには、application.confファイルのデータベースURLにパラメーターを追加します。たとえば、
db.default.url="jdbc:h2:mem:play;MODE=MYSQL"
§ターゲットデータベース
MySql | MODE=MYSQL |
|
DB2 | MODE=DB2 | |
Derby | MODE=DERBY | |
HSQLDB | MODE=HSQLDB | |
MS SQL | MODE=MSSQLServer | |
Oracle | MODE=Oracle | |
PostgreSQL | MODE=PostgreSQL |
§インメモリDBのリセットを防ぐ
H2は、デフォルトでは、それ以上の接続がない場合、インメモリデータベースをドロップします。おそらく、これを起こしたくないでしょう。これを防ぐには、URLに`DB_CLOSE_DELAY=-1`を追加します(区切り文字としてセミコロンを使用します)。例:`jdbc:h2:mem:play;MODE=MYSQL;DB_CLOSE_DELAY=-1`
注:Playの組み込みJDBCモジュールは自動的に`DB_CLOSE_DELAY=-1`を追加しますが、evolutionsでplay-slickを使用している場合は、データベースURLに手動で`;DB_CLOSE_DELAY=-1`を追加する必要があります。そうしないと、evolutionsが実行された後にPlayアプリケーションが再起動するため、evolutionsがエンドレスループになり、適用されたevolutionsが直接失われます。
§注意点
H2は、デフォルトでは、テーブルを大文字の名前で作成します。互換性モードでPlay evolutionsと一緒にH2を使用する場合など、これを起こしたくない場合があります。これを防ぐには、URLに`DATABASE_TO_UPPER=FALSE`を追加します(区切り文字としてセミコロンを使用します)。例:`jdbc:h2:mem:play;MODE=PostgreSQL;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=FALSE`
§H2ブラウザ
sbtシェルで`h2-browser`と入力して、データベースの内容を閲覧できます。SQLブラウザがWebブラウザで実行されます。
§H2ドキュメント
H2ドキュメントの詳細については、Webサイトをご覧ください。
次へ:データベースの進化の管理
このドキュメントにエラーを見つけましたか?このページのソースコードはこちらにあります。ドキュメントガイドラインをお読みいただいた後、お気軽にプルリクエストを送信してください。質問やアドバイスがありますか?コミュニティフォーラムに参加して、コミュニティとの会話を始めましょう。