🐥
DBからER図を書き出す
構成
- postgresql
- python3.9
- Graphviz :グラフ構造描画ツール
- poetry :python ライブラリ管理ツール
手順
- Graphvizをインストール
- pythonライブラリをインストール
- 描画用コード作成
- 実行:書き出し
Graphvizをインストール
$ brew install graphviz
pythonライブラリをインストール
$ poetry add sqlalchemy_schemadisplay SQLAlchemy psycopg2 pydot
描画用コード作成
erd.py
from sqlalchemy import MetaData
from sqlalchemy_schemadisplay import create_schema_graph
import json
DATABASE_URL = "postgresql://user1:password@localhost:5432/dbname"
graph = create_schema_graph(metadata=MetaData(DATABASE_URL),
show_datatypes=False, # The image would get nasty big if we'd show the datatypes
show_indexes=False, # ditto for indexes
rankdir='LR', # From left to right (instead of top to bottom)
concentrate=False # Don't try to join the relation lines together
)
graph.write_png('dbschema.png') # write out the file
実行:書き出し
$ poetry shell
$ python erd.py
Discussion