DBのバージョン管理、Javaの場合
Railsを使ってるときは、Migrationツールが標準で備わっていたので、Javaに戻ってくるとどうやって同じような事をしようかなとかなり迷い中。以下の候補を考えてみた。
- S2JDBC-Gen
- LiquiBase
- Jiemamy
- Rails
現在のプロジェクトではSeaserを使っているのでS2JDBC-Genが有力になってきた。どうやら、RailsのMigrationと同じような事が出来そうなので。もうちょい細かい感じなのかな。ただ、S2Dao使ってたような気がするのでここを置き換えられるかどうかが問題。
LiquiBaseとJiemamyについては「データベースの進化的設計」という考え方を実現するためのプロジェクトらしい。
- データベースの進化的設計
これらは、使ってるツール(S2JDBCとか、S2Daoとか)に依存しないで使えそうなのでいいんだけど、まだ、要求にあうだけの機能が揃っていない感じ。
JiemamyはERダイアグラムがフロントのインターフェースとなっているのですげー扱いやすい。が、まだ欲しい機能が足りない感じ。これからに期待。このツールが使えるなら、DBAが別にいたとしてもすんなり使ってもらえるだろうしね。本来ならこういうのが理想だよね。
LiquiBaseはER図を描けるエディタはないんだけど、DBViewerみたいなツール(Eclipseベース)からテーブルの追加、変更、削除等の操作ができ、これらの変更履歴をすべてXMLに保存してくれる。が、なぜか開発止まってるっぽい(コアの部分はバリバリ開発されてる。このEclipseのプラグインは止まってる感じ)。Eclipse3.4に入れようとしたら入らなかった・・・。スタンドアロンのは動くからいいんだけど、、ちょっと面倒くさいよね。すんなりEclipse3.4に入るならこれでもよかったんだけど。一応、XMLを直接編集することも不可能ではない。が、テキストエディタで開いて、書式を覚えてやってね、とは言えない・・・。(自分でやるならそれでもいいんだけどね。いや、それもありなのか。どうなのよ)
RailsのMigration機能を使ってやろうかと思ったけど、、これはこれで敷居が高い。
うーん。悩ましい。