#概要
Django extensionsのgraph_modelsを使用し、モデルの関係図を自動生成する方法の自分用まとめ。
envではなく、dockerコンテナ内で実行する手順になっています。
#準備
##インストールなど
必要なパッケージをインストールする。
pip install pygraphviz
pip install pydotplus
pip install django-extensions
windows環境でpygraphvizをインストールしようとするとVCビルドツールをインストールしたりする必要があるので注意。
また、dockerコンテナで行う場合、次の作業も必要でした。
graphvizをインストール。
apt-get install -y graphviz
日本語で出力したい場合、日本語フォントのインストール。ttcファイルはwindowsなどから適当に用意。
Dockerfileに記載してしまうのが楽です。
$ cp meiryob.ttc /usr/share/fonts
$ fc-cache -fv
##その他
あらかじめモデル自体やフィールドにverbose-nameを付けているとモデル図でもその名前を使用することができます。
#コマンド
python3 manage.py graph_models -g -o <出力名>.png --verbose-names --disable-abstract-fields <app名>
私の環境ではjpgは出力できませんでしたが本当はできるらしい?
また、--verbose-names
はverbose-nameを使用するオプション、--disable-abstract-fields
は継承元のフィールドを含めないようにするオプションです。他にも不要なモデルを除外する--exclude-models
など多くのオプションがあります。
#参考