📌 项目地址drawdb-io/drawdb | ⭐ 38,584 颗星 | 🔧 JavaScript | 📜 未标注

这个项目解决了什么问题

数据库表结构设计通常需要专门的桌面工具,或者用付费的在线服务。drawDB 把整个 ERD 编辑体验搬到了浏览器里,不需要注册账号,打开就能画。你可以用鼠标拖拽创建表、字段、关系,同时它会实时生成对应的 SQL 脚本。反过来,把已有的 SQL 导入,它也能解析成关系图。设计完可以直接导出 SQL 文件,或者生成迁移脚本。

实际用法:本地跑起来

drawDB 是纯前端项目,本地开发非常简单。README 给出的命令:

git clone https://github.com/drawdb-io/drawdb
cd drawdb
npm install
npm run dev

生产构建:

npm run build

如果你不想装 Node 环境,用 Docker 跑:

docker build -t drawdb .
docker run -p 3000:80 drawdb

启动后访问 http://localhost:3000 就能用了。

关于分享功能:默认没有。如果想把设计好的 ERD 分享给别人,需要自己部署配套的 drawdb-server,并按照 .env.sample 配置环境变量。对本地使用来说,不是必须的。

核心功能细节

  • 多数据库支持:可以从界面里看到 SQLite、MySQL、PostgreSQL、SQL Server、MariaDB 等选项,生成对应方言的 SQL。
  • 脚本导入导出:粘贴一段建表 SQL,drawDB 能反向生成 ERD;编辑后也能导出脚本。
  • 迁移生成:修改表结构后,可以生成 ALTER 语句,用来同步到已有数据库。
  • 界面定制:可以调整编辑器主题、显示隐藏字段类型、字段名等,让图更清晰。
  • 无需账号:所有数据保存在浏览器本地,不强制登录。

和同类工具的区别

常见的 ERD 工具有 dbdiagram.io、draw.io(diagrams.net)等。

  • dbdiagram.io 是闭源在线服务,免费版有表数量限制,且需要注册才能保存。
  • draw.io 是通用绘图工具,画 ERD 需要手动拉符号,没有数据库感知能力。
  • drawDB 的定位介于两者之间:它专门为数据库设计,但完全开源、免费、无限制,而且因为运行在浏览器本地,数据隐私性更好。

它甚至能当学习工具用:随便画几张表,看看生成的 SQL 长什么样,直观理解外键、联合主键怎么写。

注意事项

  • 项目许可证:README 中没有明确写明许可证,仓库实际采用 Apache 2.0。但使用前最好去 GitHub 仓库的 License 页面确认最新状态。
  • 浏览器本地存储:因为没有后端,你的设计默认只存在于浏览器 localStorage 里。清除浏览器数据会丢失,导出 SQL 或自己部署分享服务是持久化的手段。
  • 功能范围:虽然能生成迁移,但它是基于当前设计状态对比之前的快照,不是像 Flyway 那样的完整版本迁移工具。
  • 生产环境部署:Docker 镜像默认绑定 80 端口,映射到主机 3000 即可,按实际需求调整。

如果你经常设计数据库表结构,且不想被云服务锁定,drawDB 是一个值得加入收藏夹的工具。

这篇文章对你有帮助吗?

发表回复