RailRoadでRailsのモデルを視覚化(ERDを出す)

RailRoadというライブラリを使うと、Railsのモデルを視覚化することができます。最近のプロジェクトでは先にDBを作ってから実装を始めるというRailsっぽくない開発が多かったので久しくお世話になってなかったのですが、今開発中のアプリはとりあえずモデルの関係だけ定義しておいて、必要になったらフィールドを増やすというラフな開発をしているので、コマンド一発でモデルの関係とフィールドが視覚化できるRailRoadはありがたい存在です。

と、前置きはこのへんにしてUbuntuでRailRoadを使うメモを残しておきます。


Graphvizというクロスプラットフォームの視覚化ツールと、RailRoadのライブラリをインストールします。RailRoadのサイトにはRails1.2.3で動く的なことしか書いてないですが、2.2.2でも動いてます。

sudo aptitude install graphviz
sudo gem install railroad

あとはRailsプロジェクトで、

railroad -M | neato -Tpng > doc/erd.png

すればdoc/erd.pngにERDが出てきます。こんな感じ。

うまくいった!…と思ったら、ERDの表記法がIE表記っぽいんだけど、鳥足の向きが逆…こんな表記法ありましたっけ?IE表記に慣れているのでこれでは見づらい!ということで、向きを逆にしてみる。

railroad -M | sed -e 's/arrowtail=\(.*\)\?, arrowhead=\(.*\)\?,/arrowtail=\2, arrowhead=\1,/g' | neato -Tpng > doc/erd.png

逆になった!