数据库工具推荐——DrawDB
作者:云书0v0时间:2025-05-18 14:44:53分类:Github项目推荐
介绍
DrawDB 是一个免费、基于浏览器的数据库实体关系图(ERD)编辑器和 SQL 生成器。允许用户通过创建表、关系和其他元素来直观地设计数据库模式,即可将这些设计导出为适用于各种数据库系统的 SQL 脚本。
功能
DrawDB 使用户能够:
- 使用可视化拖拽界面创建和编辑数据库模式
- 定义表、列、关系和约束
- 为多种数据库(MySQL、PostgreSQL、SQLite、MS SQL、Oracle 等)生成 SQL 导出脚本
- 导入现有的 SQL 模式
- 将图表导出为图片或文档
- 无需创建账户即可本地保存图表
部署
根据需求,drawDB 可以以多种方式部署:
本地开发
要设置 drawDB 进行本地开发:
git clone https://github.com/drawdb-io/drawdb
cd drawdb
npm install
npm run dev
这将启动一个本地开发服务器,通常在 http://localhost:5173(具体端口号可能因环境而异)。
生产构建
为生产构建 drawDB:
git clone https://github.com/drawdb-io/drawdb
cd drawdb
npm install
npm run build
这将在 dist 目录中生成优化的静态文件,可以被任何 Web 服务器提供。
Docker 部署
drawDB 可以使用 Docker 进行容器化:
docker build -t drawdb .
docker run -p 3000:80 drawdb
构建 Docker 镜像并运行容器,在端口 3000 上提供 drawDB 服务。
注意
Nginx 应正确配置客户端路由:
server {
listen 80;
server_name _;
root /usr/share/nginx/html;
location / {
try_files $uri /index.html;
}
}
此配置将所有请求重定向到 index.html,允许 React Router 处理客户端路由。
架构
DrawDB 被构建为一个基于 React 的单页应用程序,采用组件化架构。
技术栈
DrawDB 采用以下关键技术构建:
分类 | 技术 |
---|---|
核心框架 | React |
UI 组件 | 半 UI (@douyinfe/semi-ui) |
状态管理 | React 上下文 API,自定义 Hook |
本地存储 | Dexie.js(IndexedDB 包装器) |
SQL 解析 | node-sql-parser, oracle-sql-parser |
支持 DBML | @dbml/core |
代码编辑器 | Monaco 编辑器 (@monaco-editor/react) |
导出格式 | 文件导出(SQL,DBML,JSON,图片) |
国际化 | i18next, react-i18next |
部署 | Docker, Nginx |