JiemamyとDBFlute

Seasar Conferenceで一番興味があったのは、データベースの進化的設計を実現するというJiemamyでした。
というのも、いまはDBのスキーマとUT/IT/ST用のデータ管理にDBFluteを使っているのですが、開発時にちょっと嫌な点として、スキーマを変更する度にデータが初期値に戻ってしまうということがあります。
DBFluteのreplace-schemaは事前に用意したDDLを投入するツールなのでしょうがないのですが、できればちょっとしたカラム変更や追加はALTER文で済ませたいと思っていました(ALTERで済めばテストデータの投入がスキップできるので)。
で、ツールの中でALTER文を生成するためには、変更前と変更後のスキーマを持って、その差分を取る必要があります。
ということは、DDL文を解析できるようにするか、もしくはツールがDDLを吐き出すためのモデルを持つか、のどちらかになるんですが、どっちも一から作るのは結構つらげ。
しかも1世代分のALTER文を投入し忘れたりすると、もうどこからやっていいのやらということになりがち(前にこんな機能を持つパッケージ扱ってたときによくハマりました)。
そこで、ER図が作れてDDLを出力できるというJiemamyのセッションを聞きにいってきました。


内容としては、Jiemamy自体まだプロトタイプ扱いで、開発者の方自身が「まだ使わないで」ってことなので今後どうなるかわからないですが、
自分のやりたいことをするには結構手を入れないとなぁという印象。
JiemamyはER図作成、DDL出力だけでなく、テストデータも一緒に管理してくれるんですが、
DDLを吐いたときにテストデータのINSERT文も一緒に出ちゃうということなので、多分DBFluteと同じく毎回初期化されてしまう。
ER図のモデル自体はXMLで管理されてるようなので、DOMで差分取るようにすればALTER文出せるかも。
そしたらDBFluteのreplace-schemaに組み込んでALTER文だけ実行させてgenerateしてsql2entityすればかなり時間短縮じゃね?とか妄想しつつJiemamy 0.2の年内リリースを心待ちにしています。


それにしてもSeasarプロジェクトにはDBのスキーマいじるのがいっぱい出てきましたねぇ。。。