2015.10.18   |   Python

DjangoでモデルからER図を自動生成する

django er-graph
DjangoのModelはデータベースのマイグレーションからフォームの作成まで何でも自動生成してくれるので、もしかしたらER図も作れるのではないかと調べてみたら案の定作れてしまいました。

上の画像(一部抜粋)みたいなモデルのテーブル定義に基づくグラフが簡単に作れてしまいます。

作り方

django-extensionsというDjangoの拡張のgraph_modelsというサブコマンドを使ってER図が作れるみたいです。

django-extensionsのインストール

Macの場合は

brew install Graphviz
pip install pygraphviz
pip install django-extensions

でインストールすることが出来ます。

インストールしたらdjangoのsettings.pyで、

INSTALLED_APPS += (
    'django_extensions',
)

のようにしてextensionsを有効化します。

これで準備完了です。

ER図を作成する

python manage.py graph_models -a -o er.png

これを叩くだけですべてのmodelを読み込んだER図がer.pngに書き出されます。お手軽ですね。appを指定して出力とかも出来るみたいです。

Model設計をレビューしたい時やER図の提出を求められた時に重宝しそうですね。

参考:

Django - Model graphic representation (ERD) - Stackoverflow
http://stackoverflow.com/questions/6776592/django-model-graphic-representation-erd