跳转到主要内容

用于基于SQLAlchemy ORM模型或数据库本身生成图表的软件包

项目描述

sqlalchemy_schemadisplay

将SQLAlchemy数据库模型转换为图形。

PyPI

有关此文档的先前版本,请参阅 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 (11.6 kB 查看哈希值)

上传时间 源代码

构建分布

sqlalchemy_schemadisplay-2.0-py3-none-any.whl (11.4 kB 查看哈希值)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面