用于基于SQLAlchemy ORM模型或数据库本身生成图表的软件包
项目描述
sqlalchemy_schemadisplay
将SQLAlchemy数据库模型转换为图形。
有关此文档的先前版本,请参阅 SQLAlchemy维基。
用法
您至少需要SQLAlchemy和pydot以及graphviz。Graphviz-cairo强烈推荐以获得可接受的图像质量。如果可用PIL和图像查看器,则有一些函数可以自动显示图像。某些内容,特别是通过映射器从数据库中加载表列表以及反射索引,目前仅在PostgreSQL上工作。
这是数据库实体图生成的一个示例
from sqlalchemy import MetaData
from sqlalchemy_schemadisplay import create_schema_graph
# create the pydot graph object by autoloading all tables via a bound metadata object
graph = create_schema_graph(metadata=MetaData('postgres://user:pwd@host/database'),
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
以及从模型生成的UML类图
from myapp import model
from sqlalchemy_schemadisplay import create_uml_graph
from sqlalchemy.orm import class_mapper
# lets find all the mappers in our model
mappers = [model.__mapper__]
for attr in dir(model):
if attr[0] == '_': continue
try:
cls = getattr(model, attr)
mappers.append(cls.property.entity)
except:
pass
# pass them to the function and set some formatting options
graph = create_uml_graph(mappers,
show_operations=False, # not necessary in this case
show_multiplicity_one=False # some people like to see the ones, some don't
)
graph.write_png('schema.png') # write out the file
变更日志
2.0 - 2024-02-15
与SQLAlchemy 2.x的兼容性 [Jonathan Chico]
Python要求已更改至 >= 3.8 [zlopez]
1.4 - 2024-02-15
最后一个支持Python 2的版本。
将SQLAlchemy依赖项限制为 < 2.0 以修复Python 2的安装 [abitrolly - Anatoli Babenia]
在Edge实例化时设置dir参数为‘both’,以显示箭头头和箭头尾。 [bkrn - Aaron Di Silvestro]
向‘create_schema_graph’添加‘show_column_keys’参数,以允许将PK/FK后缀添加到分别为主键/外键的列 [cchrysostomou - Constantine Chrysostomou]
向‘create_schema_graph’添加‘restrict_tables’参数,以限制我们想要通过Graphviz生成的表,并显示关系 [cchrysostomou - Constantine Chrysostomou]
1.3 - 2016-01-27
通过使用正确的属性修复了uml生成中的非法属性警告。[electrocucaracha - Victor Morales]
使用MIT许可证。[fschulze]
1.2 - 2014-03-02
与SQLAlchemy 0.9兼容。[fschulze]
与SQLAlchemy 0.8兼容。[Surgo - Kosei Kitahara]
即使外键指向它们但不在表列表中时也排除表格。[tiagosab - Tiago Saboga]
1.1 - 2011-10-12
新增跳过继承属性的选项。[nouri]
引用类名,因为一些名称如‘Node’会混淆点。[nouri - Daniel Nouri]
1.0 - 2011-01-07
初始发布。[fschulze - Florian Schulze]
最初由Ants Aasma在SQLAlchemy Wiki上作为食谱发布。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码分布
构建分布
sqlalchemy_schemadisplay-2.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e90b9c9868814975d674a889aadb7c4651658f0e119e1c9320279ea527744d5e |
|
MD5 | 0515289c080801978d885b9ef382b86c |
|
BLAKE2b-256 | 4fb0d4587a6223dd563072ed5d0b94e0d062bb3d019bf16d0e65a85324c49efc |
sqlalchemy_schemadisplay-2.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e4b928e2aec145f72a2b35de7855a78fca5e09ac4d48f2d58b4472cb640cd362 |
|
MD5 | 1cc577e4ff55a98603c673777578b156 |
|
BLAKE2b-256 | 1f9ea8d5cea8fb842393846ad42596eeb989511fab0aa1c88fe226c24c6355e7 |