web-dev-qa-db-ja.com

python 3のSQLAlchemyER図

python 3のSQLAlchemyモデルからER図を作成する方法を知っている人はいますか。pydotとERAlchemyがpython 2のみであるため、python 2であるsqlalchemy_schemadisplayを見つけました。

9
BrHa

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()

次に、モデルを表示します。

enter image description here

私が使用したモジュールは次のとおりです。

SoftwareVersion
Python3.4.5 64bit
IPython5.1.0
OSWindows 10
sqlalchemy1.1.5
eralchemy1.1.0
matplotlib2.0.0

10
Jesse

SQLAlchemy_SchemaDisplay 私にも機能します。

Windowsにインストールしました Graphviz そしてこれらの要件は pip を介して:

  • pydot
  • sqlalchemy
  • sqlalchemy_schemadisplay
  • graphviz

次に、Grapvizバイナリ(bin)フォルダーをパスに追加し、例のコードを https://github.com/sqlalchemy/sqlalchemy/wiki/SchemaDisplay で実行しました。

2
janbrohl

以前の回答で述べたように、 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')
1
Yaakov Bressler