モデルの数がそれなりにあるプロジェクトに途中から参加すると、モデル同士の関連を把握するのに結構苦労するので、ER図の存在が重要になってくる。ActiveRecordならRails ERDというgemを使えばER図を生成してくれるのだが、MongoMapper用のツールは無さそうだったので作った。

こんな感じの画像を生成できる。

まだ One-To-Many だけで Many-To-Many や Embedded には対応していないのだけど、ひとまず全体を把握するのには役にたった。余裕があれば対応していきたい。Pull requestも待ってます!

ちなみにグラフの生成には@merborne氏のGvizを使いました。Rubyから簡単にGraphvizが扱えて便利だった。

使い方

Gemfileに追加。

group :development do
  gem "mongo_mapper_diagram"
end

Rakeタスクを実行するとRails.rootにdiagram.pngとdiagram.dotが生成される。

$ rake mongo_mapper:diagram