DjangoでER図 in CentOS

Djangoのdjango-command-extensions で manage.py のコマンドを色々拡張することができる。
その中でも気にいっているのがgraph_models
モデルをER図のような画像で出力してくれる。
f:id:shohu33:20090907001148j:image
さっそく画像出力までを試してみた。

準備

Graphviz

グラフ表現を GIF や PNG などのファイルフォーマットに変換してくれるライブラリをインスコ

$ wget http://www.graphviz.org/graphviz-rhel.repo
$ cp graphviz-rhel.repo /etc/yum.repos.d/
$ sudo yum install graphviz
$ sudo yum install graphviz-devel graphviz-doc
pygraphviz

pythonからGraphvizを使うためのもの

$ wget http://pypi.python.org/packages/source/p/pygraphviz/pygraphviz-0.99.1.tar.gz#md5=5381633f9538804b24046eb96474668d
$ tar zxvf pygraphviz-0.99.1.tar.gz
$ cd pygraphviz-0.99.1
$ sudo python setup.py install 
django-command-extensions

拡張コマンド本体をインスコ
http://code.google.com/p/django-command-extensions/
からソースを落として以下でインスコ

python setup.py install

あとはsettings.pyのINSTALLED_APPSに以下を記載しておく

INSTALLED_APPS = (
    ...
    'django_extensions',
)

画像出力

djangoプロジェクトに移動して以下実行

$ python manage.py graph_models -a -g -o hoge.png