ER図の作成は今まではEclipseのプラグインやA5に頼っていたのですが、ERAlchemyというpipライブラリを使うとコマンドラインで完結できるようです。
https://pypi.python.org/pypi/ERAlchemy
結論から言うと生成されるER図は完璧なものではなさそうなので、何となく雰囲気を見たいというようなレベルの時に利用するのがいいかなと思います。
環境
- Ubuntu: 16.04
- Python: 3.6.2
- pip: 9.0.1
- PostgreSQL: 9.6.5
インストール
※ psycopg2等は開発段階で使っているため前提になってしまっています
まずは必要と書かれているGraphViz周りをインストールします。
$ sudo apt-get install graphviz libgraphviz-dev
Ubuntuではeralchemy実行時にエラーになってしまったので、適切にパスを通しておく必要があるみたいです。
( https://github.com/pygraphviz/pygraphviz/issues/71#issuecomment-138999823 を参考)
$ pip install pygraphviz --install-option="--include-path=/usr/include/graphviz" --install-option="--library-path=/usr/lib/graphviz/"
ちなみに発生したエラーは以下のような感じです。
発生してしまってからは一旦uninstallして上記のinstallコマンドを流しました。
ImportError: .../site-packages/pygraphviz/_graphviz.cpython-36m-x86_64-linux-gnu.so: undefined symbol: Agundirected
そしてERAlchemyをインストールします。
$ pip install eralchemy
現時点では1.1.0がインストールされました。
ER図の作成
以下のコマンドでER図がPDFで出力されます。
$ eralchemy -i 'postgresql+psycopg2://username:password@hostname:5432/databasename' -o out.pdf
拡張子のところをpngに変えれば画像で出力されますし、erにするとMarkdown形式のテキストで出力されます。
出力されたER図を見ると「0..N」の場所とか合ってるんだろうかという感じがしますが、ER図にそこまで詳しいわけではないので実は正しいのかよくわかりません。
とりあえずオプションも気にせず動かしてみたという状態なので、今後必要に応じてオプションとか調査していきたいなと思います。
できたものを他のER図のツールにインポートしていじくりまわせると便利なんですけどねぇ。