#はじめに
業務でER図を自動化したいという要件があってその時に調査した内容をせっかくなのでこちらでも共有したいと思います。
#調査の結果
まず調査の結果からですがやはり業務で使ってるデータベースのテーブル数やカラム数はかなりの数なので正式なER図として認定するには少し難しいという結論になりました。
まあというより不必要なテーブルやカラムまで表示されてしまうので全部出力するのもそれはそれで無駄だよね。だけど今更切り分けも難しいという感じになりました。
ただローカルで確認する分には結構いい物もあったので今回共有しようかなと思うに至った所存です。
#前提
どの方法もgraphvizを使用するため、以下コマンドでgraphvizをOSにインストールします。
$ brew install graphviz
##案1 rails ERD(Gem)
個人開発レベルならこれでも全然見やすいんですけど業務で使うとなるとフォーマットが見づらくてざっくりしたテーブルの関係性しか見れませんでした。
group :development, :test do
gem 'rails-erd'
end
$ bundle exec erd
##案2 RailRoady(Gem)
これも個人開発レベルならこれでも全然見やすいですし、モデルとコントローラーでそれぞれ出力できるので結構いいなぁと思ったんですけど業務で使うとなると同じくフォーマットが見づらい。
group :development, :test do
gem 'railroady'
end
$ bundle exec rake diagram:all
Railsエンジン使用してる方は以下。
$ bundle exec rake diagram:all_with_engines
##案3 Sequel Proのエクスポート機能を使ってER図を出力
全体のテーブル構造をざっくり見るならこれが一番見やすかったかも。
suinさんの以下記事の通りにやれば行けるのでこれも良かったら、、、
SequelProでER図を出力する方法
##案4 DBeaverを使用
各テーブル単位で外部キーやリレーションを見るなら多分これが一番いいかも。
以下記事のER図の表示の部分を見てもらえるとこんな感じのER図が見れるんだというのが分かります。
DBeaver使い方メモ
#最後に
こんな感じで意外にも色々な方法があるんだなぁと新たな発見があったりそれぞれの手法で実際に見てみると得手不得手があるんだなというのも面白かったですね。
ちなみに個人ではDBeaverを使用してます。
参考になれば嬉しいです。