🐥

DBからER図を書き出す

2022/01/01に公開

構成

  • postgresql
  • python3.9
  • Graphviz :グラフ構造描画ツール
  • poetry :python ライブラリ管理ツール

手順

  1. Graphvizをインストール
  2. pythonライブラリをインストール
  3. 描画用コード作成
  4. 実行:書き出し

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

SchemaDisplay

Discussion