有谁知道如何在 python 3 中从 SQLAlchemy 模型制作 ER 图。我找到了 sqlalchemy_schemadisplay,它是 python 2,因为 pydot 和 ERAlchemy 也只是 python 2。
你可以尝试炼金术。
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是一个非常简单的工具。以下是基本的使用方法:
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')
SQLAlchemy_SchemaDisplay 也适合我。
在 Windows 上,我通过 pip 安装了 Graphviz 和这些要求:
然后我将 Grapviz 二进制 (bin) 文件夹添加到路径中,并运行示例中的代码 https://github.com/sqlalchemy/sqlalchemy/wiki/SchemaDisplay
我推荐sqlalchemy_data_model_visualizer,它更现代,通过graphviz输出svg:
apt install graphviz
)pip install sqlalchemy_data_model_visualizer
from yourapp.yourdb import Model1, Model2
models = [Model1, Model2]
generate_data_model_diagram(models, "diagram")
这应该会生成
diagram.svg