Jiemamyに欲しい機能

昨日の日記のコメントを書いていたら長くなったので、記事にしちゃいました。
DBのバージョン管理、Javaの場合 - ありの日記

> 都元さんへ

申し訳ないなんてとんでもないです^^;
私が欲しいなと思った機能は、Railsマイグレーション機能なんですね。ご存知かも知れませんが、あれは、DBに対する変更があった場合、その変更内容をファイルに書いて行きます。そして、そのファイルには連番が振られているので、いつでも指定したバージョンに戻すこともできます。新しく開発環境にセットアップする場合は、そのファイルを一から順に適用していくだけです。
カラムを追加したいときその操作を一つのファイルに記入すると同時に、元に戻す操作も同時に書いておきます。そうすることで、逆に変更を適用していくことも出来るわけです。
そして、このファイルの中にはテーブルのデータを追加する操作も記述できます。ですので、参照系のマスタ(っていうんですかね。あるシステムで大体変更のないようなデータが入っているあれですw)のデータなんかは、ここに書くことで、DBの作成と同時に必要最低限のデータが勝手に入ってくれるので、セットアップ作業が意外と短縮されます。
作業としては、以下のようになります。現在、30までバージョンがあるとすると。

rake db:migrate

で最新のバージョン30までのDBを作成してくます。30ってのはそのままファイルの数に対応していまして、これだとそのすべてを適用することになります。
そして、31のバージョンが出てきたら上記と同じコマンドを実行することで、31のバージョンのみが適用されてゆきます。

rake db:migrate VERSION=25

とすると、バージョン25に戻してくれます。これは、ファイルに元に戻す操作を書いているおかげですね。
それと、Fixtureという機能があって、YAML形式のデータをDBに読み込むことができますので、テスト用のデータを投入することが出来ます。あと、標準の機能ではなかったのですが、テーブルの内容を逆にYAMLファイルに出力するという機能もプラグインとして提供されています。こういう機能があると、データを作るのも投入するのも楽ですよねー。
長くなりましたが(こうやって書かないとどんな機能がが欲しいのかって自分でも理解できなかったりします(笑))、多分私が欲しいなと思っている機能は以下の3つになります。

  1. DBに対する変更を一つずつ適用できる機能(前にも、後ろにも)
  2. DBに簡単にデータを投入できる機能、またその逆の機能
  3. これらの操作をコマンドラインから実行できる機能

これら、3つの機能は開発環境で便利なだけでなく、本番機をセットアップするまたはデプロイする際にも非常に役に立ちました。(2つ目の機能は本番機初期セットアップ以降はあまり使うことはなかったですが)

Jiemamyの目指しているところと、このRailsマイグレーションの機能が一致するかは分からないのですが、とりあえずこの3つがあれば、いいですねー。もしかして、自分が見逃してるだけかもしれないのですが、、もしそうなら教えてください(笑