简单的实体关系(ER)图生成
项目描述
实体关系图生成器
eralchemy可以从数据库或从SQLAlchemy模型生成实体关系(ER)图(如下所示)。
示例
快速开始
安装
要安装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文件,排除名为temp
和audit
的表
$ eralchemy -i 'postgresql+psycopg2://username:password@hostname:5432/databasename' -o filtered.er --exclude-tables temp audit
从Postgresql数据库到Markdown文件,排除所有表中的created_at
和updated_at
列
$ eralchemy -i 'postgresql+psycopg2://username:password@hostname:5432/databasename' -o filtered.er --exclude-columns created_at updated_at
从Postgresql数据库到Markdown文件,针对schema1
和schema2
模式
$ 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')
架构
由于其模块化架构,它可以连接到其他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 查看散列)