あんまり日常的に開発で使うことなさそうだけど、誰かにアプリの概要を説明したり、QiitaとかでサンプルアプリのER図を見せたい時とかに使えるGemたち。
- preston/railroady
- voormedia/rails-erd
この2つ。railroadyの方はモデルのER図だけじゃなくて、コントローラーなどのクラス図なども作成できる。
前提
- Rails v4.x
- Graphviz v2.22
Graphvizというパッケージが必要になる。GraphvizとはDOT言語というスクリプトをグラフに描画してくれる良い感じのやつらしい。どうでもいいけど、DOT言語ってカッコいいな…。
Graphvizのインストール
yum系
command
$ sudo yum install graphviz
Mac
command
$ brew install graphviz
railroady
インストール
Gemfile
gem "railroady"
command
$ bundle install
使い方
command
# 全部を対象に出力
$ bundle exec rake diagram:all
これで/doc/ディレクトリにsvgファイルが保存される。ボリュームの少ないサンプルアプリを対象にやったから、ちょっとイメージがわきにくいけど…。こんな感じの図が出力される。
command
$ bundle exec railroady -M | dot -Tsvg > models.svg
モデルER図だけ表示したいときは-M
オプションを使う。
rails-erd
インストール
Gemfile
gem "rails-erd"
command
$ bundle install
使い方
command
$ bundle exec rake erd
デフォルトだと、rails-erdの方が見やすいかもしれない。
今回は、RailsアプリだからGemとかで良いんだけど、環境とか言語にあまり左右されずに純粋にモデル図とかを書きたいとき、どんなツールがいいんだろ…。できれば設定ファイルを書いてコマンドで出力…みたいなシンプルな奴がいいんだけどなー。