
开场一次真实的「谁动了 user 表」事故周五下午测试环境连不上库。排查下来是user表的status字段从TINYINT被改成了VARCHAR线上脚本批量更新直接报错。群里三个人互相 「不是我改的」「我只动了索引」「Navicat 里早就改回去了啊」——但没有任何一条记录能证明谁在什么时间、把什么改成了什么。这不是极端个案。只要表结构会演进就会反复遇到同一类问题当前态在历史没了口头对齐在证据没有。和代码一样数据库设计也需要「谁、何时、改了什么」的可追溯性——只是大多数 ER 工具从未把这件事当成一等公民。为什么现有的工具管不了这件事先把机制说清楚不针对某一家产品方式能回答的问题管不了的事draw.io / 通用画图「现在长什么样」没有版本链改完即覆盖无法 diffNavicat / 客户端导出「当前 DDL 快照」需人工导出、命名、归档无项目内 diff UIdbdiagram 等极简建模「当前模型长什么样」聚焦当前态与导出协作与版本叙事不是主路径纯 SQL 迁移脚本Flyway 等「已落库的变更历史」管的是已执行 DDL不是设计阶段的 ER 语义与字段级 diff缺口在于设计阶段的表/字段/关系变更需要像 Git 一样——每次有意义的改动自动成版任意两版之间能看 diff而不是靠人记、靠文件名猜。把 Git 心智搬进建模版本快照是什么ERD Online 把「保存版本」做成建模工作流里的常规动作而不是导出文件的额外步骤在项目里改表——增删字段、改类型、调关系画布与 projectJSON 同步更新。点「保存版本」——输入版本号如1.0.1与说明系统为当前 projectJSON 打快照。版本列表按时间排列——可给里程碑打 tag后续比对、回滚、协作都以版本号为锚点。这和 Git 的 commit 心智一致当前工作区可以乱改落盘的是一条不可篡改的快照链。区别是快照存的是结构化 projectJSON表、字段、索引、关系不是.sql文本堆。诚实说明若本次保存相对上一版没有任何实质变更空 diff系统允许存版作书签但不计入我们关注的「有效版本保存」指标——我们鼓励的是「改动了再存」而不是刷版本号。diff 可视化两个版本之间到底改了什么光有版本列表还不够。真正救命的是diff 面板选「初始版本」和「目标版本」一眼看到哪些表新增或删除哪些字段增删改含类型、主键、备注等语义哪些关系变动。不需要把两份 DDL 贴进 Beyond Compare 人工 eyeball。设计评审、事故复盘、和 DBA 对齐都可以指着 diff 说「就是这两处改动导致了下游脚本失败。」这也是我们把「每周产生非空 diff的版本保存数」当作北极星的原因存版 看 diff才算完成一次有价值的建模闭环而不是把版本号当文件夹名用。30 秒亲手验证免注册不用注册、不用装客户端打开 demo 即可走通「改表 → 存版 → 看 diff」打开 demo进入示例项目的设计器。任选一张表新增或修改一个字段例如给user加一列nickname。点击「保存版本」填版本号后确认打开版本管理选两个版本做比对查看 diff 面板。30 秒免注册亲手验证https://erdonline-demo.pages.dev/demo?utm_sourcecsdnutm_mediumarticleutm_campaignlaunchutm_contentgit-style-version-diff开源地址MIT欢迎 star / issue / PRhttps://github.com/erdonline/erdonline?utm_sourcecsdnutm_mediumarticleutm_campaignlaunchutm_contentgit-style-version-diff不止 diff协作、审批流与回滚版本 diff 是入口团队场景还需要多人协作同一项目并行改模型变更通过版本链汇聚而不是文件传来传去。三级权限与审批流成员改结构、负责人审、管理员兜底——适合「谁可以动生产库对应的设计」。回滚到历史版本选定目标版本把 projectJSON 恢复到该快照落盘前仍有确认步骤。以上能力在开源版均已提供细节见官方文档 https://erdonline.github.io/erdonline/?utm_sourcecsdnutm_mediumarticleutm_campaignlaunchutm_contentgit-style-version-diff此处不展开配置截图。开源与自部署许可MIT可商用、可 fork、可内网部署。一键起栈仓库根目录docker compose up -dMySQL Redis 前后端按 compose 编排启动见部署文档。开放格式核心数据为 projectJSONschema 版本化承诺仅加法、不破坏已有字段——便于自建工具、AI agent 或 MCP 集成读写同一份事实源。路线图与参与路线图、贡献指南与 good first issue 均公开在文档站https://erdonline.github.io/erdonline/?utm_sourcecsdnutm_mediumarticleutm_campaignlaunchutm_contentgit-style-version-diff。若这篇对你有用欢迎在 GitHub 点 star、提 issue 或 PRhttps://github.com/erdonline/erdonline?utm_sourcecsdnutm_mediumarticleutm_campaignlaunchutm_contentgit-style-version-diff——我们会优先把「版本 diff 协作」长板做长而不是做另一个 dbdiagram 复刻。