親バカエンジニアのナレッジ帳

webのエンジニアをやっており、日頃の開発で詰まったことや書き残しておきたいことを載せています。育児のイロハという育児サイト(https://ikujip.jp)の開発も行っているため、その開発で使用されている技術についても掲載しています。

PlayframeworkのマイグレーションはEvolutionで

PlayframeworkのEvolution

Playframeworkではマイグレーションを行う時にEvolutionを使えます。
設定作業が気軽に簡単にできるため、とてもおすすめのマイグレーションツールです。

使い方としては、モデルを書いてからブラウザを開き直すだけで、勝手にSQLDDLを作成してくれてそのままデータベースに反映できるわけです。
このあたりはRailsっぽいですよね。

ただ、デフォルトの設定のままでは、毎回1.sqlDDLが作成されてデータベースが毎回削除されてしまいます。
開発環境とはいえやはり毎回削除されてしまうのはキツイです。
テスト用のトランザクションデータをまた用意するのも大変ですよね。

データベースが削除されないために

削除されないためには、1.sqlの上部にある下記の2行を削除すればOKです。

# --- Created by Ebean DDL
# To stop Ebean DDL generation, remove this comment and start using Evolutions

ここを削除すればブラウザにアクセスしても1.sqlが勝手に更新されることなく、データベースがクリアされることを避けることができます。

ただ注意点なのは、次にマイグレーションのファイルを作成する時は2.sqlを作成して自分でDDLを記述する必要があります。
モデルの内容を反映してくれるのは最初だけなんですね...
モデルの変更を感知して勝手に2.sqlを作成してくれればいいのに。

そうなるとモデルの変更を履歴で持つ必要が出てきてしまうので流石に無理か。
設定などは簡単ですが、結局他のマイグレーションツールと使い勝手という意味では一緒になってしまいましたね。

Scala in Action: Covers Scala 2.10

Scala in Action: Covers Scala 2.10