mysqlviz使って自動でER図作成してみた
手動でER図をゴニョゴニョ作ってたけど、めんどくさくなってきたので、
お手軽に作れないか探したら良い感じにできそうなのでメモ。
ER図とは?
E-R図 (Entity Relationship Diagram)
DBのテーブル設計する際に用いられる図です。
各テーブルとの関係性を表すのに使われますが、書くのがめちゃくちゃめんどくさい…
かといって書かないと全体像がわかりにくいので、頑張ってcacooを使って書いてました。
ただ、やっぱり手動でちまちま書くのはめんどくさいのでいろいろ探してたら、mysqlvizというものを見つけたので使ってみました。
mysqlvizは、DBからdumpした結果を使って、ER図を生成してくれます。
なので、テーブル構成を決めてしまえばあとはmysqlviz側が勝手に判断して作ってくれます。
では実際に動かしてみます。
まず、適当なテーブルを作ります。
create table user (
`id` int(10) unsigned NOT NULL auto_increment,
`name` varchar(100),
`section_id` int(11),
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
create table section (
`id` int(10) unsigned NOT NULL auto_increment,
`name` varchar(100),
PRIMARY KEY (`id`) ,
FOREIGN KEY (`id`) REFERENCES `user` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
マニュアルを見た感じは外部キーの設定はしておかなくてもいけそうだけど、うまく動かんかった…
mysqlvizをダウンロードして、適当なディレクトリへ置き解凍しておく。
で、対象のDBをdumpしてあとはmysqlvizにツッコむだけでOK。
# -dオプションをつけるとテーブルの定義だけdumpできます。
$ mysqldump -uroot -ppassword -d test >db.sql
$ ./mysqlviz -f ./db.sql >./db.dot
できたdotファイルは、graphvizというものを使ってpng化します。
graphvizをインストール。
(OSによって違うので、最適なやつでどうぞ)
$ apt-get install graphviz
$ sudo port install graphviz
でgraphvizのインストールが完了したら、以下のコマンドを叩いて実行。
$ dot -Tpng db.dot >db.png
完成したER図はこちら。
簡単…