python 3のSQLAlchemyモデルからER図を作成する方法を知っている人はいますか。pydotとERAlchemyがpython 2のみであるため、python 2であるsqlalchemy_schemadisplayを見つけました。
eralchemy を試すことができます。
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import pandas as pd
from eralchemy import render_er
from sqlalchemy import (MetaData, Table, Column)
metadata = MetaData()
# create your own model ....
users = Table('users', metadata,
Column('user_id', Integer(), primary_key=True),
Column('username', String(15), nullable=False, unique=True),
)
orders = Table('orders', metadata,
Column('order_id', Integer()),
Column('user_id', ForeignKey('users.user_id')),
)
# add your own table ....
# Show ER model from here
filename = 'mymodel.png'
render_er(metadata, filename)
imgplot = plt.imshow(mpimg.imread(filename))
plt.rcParams["figure.figsize"] = (15,10)
plt.show()
次に、モデルを表示します。
私が使用したモジュールは次のとおりです。
Software
Version
Python
3.4.5 64bit
IPython
5.1.0
OS
Windows 10
sqlalchemy
1.1.5
eralchemy
1.1.0
matplotlib
2.0.0
SQLAlchemy_SchemaDisplay 私にも機能します。
Windowsにインストールしました Graphviz そしてこれらの要件は pip を介して:
次に、Grapvizバイナリ(bin)フォルダーをパスに追加し、例のコードを https://github.com/sqlalchemy/sqlalchemy/wiki/SchemaDisplay で実行しました。
以前の回答で述べたように、 sqlalchemy_schemadisplay は素晴らしくシンプルなツールです。これがあなたがそれを使う基本的な方法です:
from sqlalchemy_schemadisplay import create_schema_graph
from sqlalchemy import MetaData
graph = create_schema_graph(metadata=MetaData('postgres://user:pwd@Host/database'))
graph.write_png('my_erd.png')