Playで起動時に無確認でevolutionが実行されるようにする
Play framework 2.0.4についてです。
なんとなく思いつきで、modelを起動時にだけ保持するシステムを作ってました。
なら起動中のみmemに保存されるjdbc:h2:mem:playでいいんでねーの、と
でprodモードで起動してみました。
すると、案の定
とのエラーが。
普段の開発でevolution使うのなんてワーキングコピーぐらいなので、いつもdevモードでevolutionしてからprodで起動するんですが、性質上データベースを保持しないこういうプログラムを常にdevモードで起動するのもなぁ、と思ったので似たような事例ないか検索。
案の定StackOverFlowで発見。
playframework - Running evolutions on Play Framework 2.0 - Stack Overflow
何やら、applyEvolutions.defaultをtrueにした状態で起動すればよろしいとのこと。
確かによく見たら上のエラーメッセージでもそんなオプションつけろと言ってる。
で、実際にapplication.confに
という一行を追加して再度起動してみたところ、警告なしでevolutionされました。
まぁ普通のMySQLなんかのDB使ってたら、危険すぎて使えないんですが(データ全部消える)、こういう起動中のみmodelを永続化したいというプログラムでは利用できるTipsかと思います。
なんとなく思いつきで、modelを起動時にだけ保持するシステムを作ってました。
なら起動中のみmemに保存されるjdbc:h2:mem:playでいいんでねーの、と
db.default.driver=org.h2.Driver db.default.url="jdbc:h2:mem:play"
でprodモードで起動してみました。
すると、案の定
[info] play - database [default] connected at jdbc:h2:mem:play [warn] play - Your production database [default] needs evolutions! [warn] play - Run with -DapplyEvolutions.default=true if you want to run them automatically (be careful)
とのエラーが。
普段の開発でevolution使うのなんてワーキングコピーぐらいなので、いつもdevモードでevolutionしてからprodで起動するんですが、性質上データベースを保持しないこういうプログラムを常にdevモードで起動するのもなぁ、と思ったので似たような事例ないか検索。
案の定StackOverFlowで発見。
playframework - Running evolutions on Play Framework 2.0 - Stack Overflow
何やら、applyEvolutions.defaultをtrueにした状態で起動すればよろしいとのこと。
確かによく見たら上のエラーメッセージでもそんなオプションつけろと言ってる。
で、実際にapplication.confに
applyEvolutions.default=true
という一行を追加して再度起動してみたところ、警告なしでevolutionされました。
まぁ普通のMySQLなんかのDB使ってたら、危険すぎて使えないんですが(データ全部消える)、こういう起動中のみmodelを永続化したいというプログラムでは利用できるTipsかと思います。
コメント
0 件のコメント :
コメントを投稿