SQL 一键转经典 Chen 风格 ER 图:开源 CLI + 在线工具 + Agent Skill

SQL 一键转经典 Chen 风格 ER 图:开源 CLI + 在线工具 + Agent Skill

做数据库设计、写课程作业、给需求出表结构时,经常要画 ER 图。很多人还在用 Visio / ProcessOn 一点点拖,或者把 SQL 丢进各种「半成品」工具里,版式乱、中文糊、还导不出设计文档。

我把平时在用的能力整理成了一套开源方案:sql-to-er ------从 CREATE TABLE 直接生成经典 Chen 风格 ER 图,并支持 Word 三线表设计文档。


能做什么

能力 说明
多方言 SQL MySQL / PostgreSQL / SQL Server / Oracle 常见 DDL
经典 Chen 图 实体矩形、属性椭圆、关系菱形,标注 1 / N
渲染策略 有 Graphviz 用 Graphviz;没有则自动 matplotlib 黑白回退
文档导出 Word 三线表「数据库设计文档」
其它格式 Mermaid、GoJS JSON(按需)
Agent Skill 可挂到 AI Agent,给 SQL 或自然语言需求直接出图

解析优先走 yanleaf 公开接口,失败会本地回退,不强制联网才能画图。


快速开始

环境:Python 3.9+

bash 复制代码
pip install sqlparse pyyaml python-docx pillow matplotlib graphviz

(国内可将 pip 源换成清华等镜像。)

bash 复制代码
# 只要 ER 图
python scripts/sql_to_erd.py your.sql --out erd --format png

# 只要 Word 设计文档
python scripts/sql_to_erd.py your.sql --out design --format word

# 图 + 文档 + Mermaid 全套
python scripts/sql_to_erd.py your.sql --out erd --format all

系统 Graphviz(可选,装了图更稳):

  • Windows:官网安装包或 winget install Graphviz.Graphviz
  • macOS:brew install graphviz
  • Ubuntu:sudo apt install graphviz

装不上也没关系,会自动走 matplotlib。


SkillHub 一键安装

若使用支持 SkillHub 的 AI 助手,可发送:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_0695bb88/sql-to-er。

安装完成后,提供 SQL 或业务描述,即可生成经典 Chen 风格 ER 图。

和「只支持一种库 / 只能看图」的工具差在哪

  1. Chen 记号:不是只有方框表结构,而是教学和论文里常见的实体---属性---关系画法。
  2. 能出 Word 三线表:交作业、写设计说明更直接。
  3. 可脚本化 / 可进 Agent:适合批量 SQL、CI 或和 AI 工作流集成。
  4. 在线版补齐交互:需要拖拽、AI 辅助建模时,用 https://yanleaf.com/tools/sql-to-er 即可。

作为 Agent Skill

仓库内带有 SKILL.md,拷到 Agent 的 skills 目录后:

  • 用户丢一段 SQL → 解析并出 ER 图
  • 用户说「做一个学生选课的 ER 图」→ 由当前模型设计表结构再渲染(不消耗在线站的 AI 额度)

约定是:用户要什么就出什么(只说「画图」就只出 PNG,不要默认全套导出)。


说明与规划

  • 当前聚焦 CREATE TABLE 与主外键关系,不做完整 DDL 仿真器。
  • 表很多、字段很多时,可只保留主键/外键等关键字段,避免图不可读。
  • 后续会按反馈继续打磨布局与方言细节。

欢迎 Star、提 Issue,或直接在线试用:

相关推荐
斯普信专业组1 天前
Redis RESP3 协议规范:从入门到实战
数据库·redis·缓存
sunburn-1 天前
数据库操作完整教程:从基础到实战
java·数据库·mysql
云和数据.ChenGuang1 天前
Python 集合(set)常用函数详解与实战案例
开发语言·python·深度学习·langchain
梯度下降者1 天前
python在哪些方面有应用,python可以用在哪些方面
人工智能·python·web开发·科学计算·应用领域
bksczm1 天前
MySQL之读写分离与分库分表
数据库·mysql
姜鱼问生1 天前
报数据库连不上?Docker Compose 启动顺序假象:depends_on 不是万能的!
数据库·docker·容器
烂蜻蜓1 天前
Pandas入门教程(十二):读取 HTML 表格——read_html 参数详解与网页数据清洗
python·html·pandas
2601_967979121 天前
Opteryx Python库 macOS版本0.0.0a12
python·macos·1024程序员节·wheel·opteryx·alpha
梅孔立1 天前
.mdb Access_MDB历史数据文件迁移MySQL实战教程-可直接投喂给ai参考这个帮你完成迁移
数据库·mysql·adb
神奇的代码在哪里1 天前
MOSS-Image-SFT 开源解读:JSON 布局控制文字与排版
人工智能·开源·文生图·diffusers·moss-image