DBから、YAMLフィクスチャを出力するRailsプラグインを公開

DBから、YAML形式のフィクスチャを出力するプラグインとして有名なものに、ar_fixturesがある。
が、いろいろ調べてみたら、いくつか問題点があるようなので、elm200さんの記事を参考に、プラグインを自作してみた。


環境


elm200さんによると、ar_fixturesの問題点は
•内部的にto_yamlメソッドを使用しているため、UTF-8の文字列をうまく扱えない
•出力されるカラムの順序がバラバラ
とのこと。


これをふまえて、プラグインの製作にかかる。
elm200さんのコードからの改良点は

  • Rails 2.2への対応
  • テスト環境にrspecを使用している場合は、YAMLファイルをspec/fixturesディレクトリに出力
  • テーブル名・カラム名を、別の名前に変換して出力することも可能。(レガシーDBからデータ移行する際に便利かも)
  • DBのスキーマを元に、自動でダミーデータを生成

の4点。


インストール
せっかくなので、作ったプラグイン(ar_extractor)をgithubで公開。
インストール方法は、以下のとおり。
$ script/plugin install git://github.com/abikounso/ar_extractor.git


基本的な使い方
全テーブルのデータを出力
$ rake db:fixtures:extract


特定のテーブルのデータだけ出力

$ rake db:fixtures:extract FIXTURES=users,clients


YAMLファイルの出力先
テスト環境にrspecを使用している場合

spec/fixtures/
それ以外の場合
test/fixtures/


その他の機能に関しては、次回以降に解説する予定。