python 3中的SQLAlchemy ER图

BrH*_*rHa 7 python entity-relationship sqlalchemy python-3.x

有没有人知道从python 3中的SQLAlchemy模型制作ER图的方法.我找到了sqlalchemy_schemadisplay,它是python 2,因为pydot和ERAlchemy只是python 2.

Yaa*_*ler 18

正如之前的答案中提到的,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')
Run Code Online (Sandbox Code Playgroud)

  • 假设您希望输出看起来不那么糟糕,您还可以通过“graph.set(attr, value)”将属性传递到底层 graphviz。例如 `graph.set('scale', 2)` 。Graphviz 属性[记录在此处](https://graphviz.org/doc/info/attrs.html) (2认同)
  • 您需要在您的计算机上安装“graphiz”@AkhilS。也许这可以帮助?[在路径中找不到“dot.exe”。Python 上的 Pydot(Windows 7)](/sf/ask/2844274051/) (2认同)

Jes*_*sse 9

你可以试试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()
Run Code Online (Sandbox Code Playgroud)

然后它显示模型.

在此输入图像描述

我使用的那些模块是:

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