跳转到主要内容

简单的实体关系(ER)图生成

项目描述

license PyPI - Version PyPI Downloads GitHub Actions Workflow Status Codecov

实体关系图生成器

eralchemy可以从数据库或从SQLAlchemy模型生成实体关系(ER)图(如下所示)。

示例

Example for a graph

快速开始

安装

要安装eralchemy,只需执行以下操作

$ pip install eralchemy

图形库版本

为了创建图片和PDF,eralchemy依赖于graphviz或pygraphviz。

您可以使用以下任一

$ pip install eralchemy[graphviz]

$ pip install eralchemy[pygraphviz]

来检索正确的依赖项。如果两者都安装了,则默认使用graphviz库。

eralchemy需要GraphViz来生成图形和Python。它们都可在Windows、Mac和Linux上使用。

对于基于Debian的系统,在安装eralchemy之前运行以下命令

$ apt install graphviz libgraphviz-dev

使用conda安装

conda-forge中还有一个打包版本,它可以直接安装依赖项

$ conda install -c conda-forge eralchemy

命令行使用方法

从数据库中

$ eralchemy -i sqlite:///relative/path/to/db.db -o erd_from_sqlite.pdf

数据库被指定为SQLAlchemy数据库URL。

从Markdown文件中

$ curl 'https://raw.githubusercontent.com/eralchemy/eralchemy/main/example/forum.er' > markdown_file.er
$ eralchemy -i 'markdown_file.er' -o erd_from_markdown_file.pdf

从Postgresql数据库到Markdown文件,排除名为tempaudit的表

$ eralchemy -i 'postgresql+psycopg2://username:password@hostname:5432/databasename' -o filtered.er --exclude-tables temp audit

从Postgresql数据库到Markdown文件,排除所有表中的created_atupdated_at

$ eralchemy -i 'postgresql+psycopg2://username:password@hostname:5432/databasename' -o filtered.er --exclude-columns created_at updated_at

从Postgresql数据库到Markdown文件,针对schema1schema2模式

$ eralchemy -i 'postgresql+psycopg2://username:password@hostname:5432/databasename' -s "schema1, schema2"

指定输出模式

$ eralchemy -i 'markdown_file.er' -o erd_from_markdown_file.md -m mermaid_er

Python中使用方法

from eralchemy import render_er
## Draw from SQLAlchemy base
render_er(Base, 'erd_from_sqlalchemy.png')

## Draw from database
render_er("sqlite:///relative/path/to/db.db", 'erd_from_sqlite.png')

架构

Architecture schema

由于其模块化架构,它可以连接到其他ORM/ODM/OGM/O*Ms。

贡献

欢迎在GitHub issues上的任何反馈。

开发

使用以下命令安装开发依赖项:

$ pip install -e .[ci,dev]

请确保运行pre-commit以修复格式问题

$ pre-commit run --all

欢迎所有经过测试的PR。

运行测试

本项目使用pytest测试套件。要运行测试,请使用:$ pytest$ tox

某些测试需要本地PostgreSQL数据库,其中包含名为test的schema,在名为test的数据库中,所有者名为eralchemy,密码为eralchemy。如果可用的docker compose,可以使用docker compose up -d来达到此目的。您可以使用以下命令取消选择需要PostgreSQL数据库的测试:

$ pytest -m "not external_db"

发布版本

$ rm -r dist && python -m build && python3 -m twine upload --repository pypi dist/*

注意

ERAlchemy受到erd的启发,尽管它可以直接从数据库渲染ER图,而不仅仅是从ER标记语言中。

Apache License 2.0发布

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

eralchemy-1.5.0.tar.gz (24.8 kB 查看散列)

上传时间

构建分发

eralchemy-1.5.0-py3-none-any.whl (19.3 kB 查看散列)

上传时间 Python 3

由以下支持

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