d1-manager
Cloudflare D1 数据库的 Web 管理界面,支持自然语言生成 SQL
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Cloudflare D1 数据库的 Web 管理界面,支持自然语言生成 SQL
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
2022年,Cloudflare 推出了 D1——一款基于 SQLite 的无服务器 SQL 数据库,为 Workers 和 Pages 提供边缘数据库能力。然而,尽管 D1 技术先进,开发者面临一个尴尬的现实:Cloudflare 官方只提供了 Wrangler CLI 工具,数据库管理、表格浏览、数据增删改查全靠命令行。这对于不熟悉 SQL 或习惯图形界面的开发者来说,门槛不可谓不高。
JacobLinCool 看到了这个痛点,开发了 D1 Manager——一个专为 Cloudflare D1 设计的 Web UI + REST API 工具。它让开发者可以通过浏览器管理数据库、执行 SQL 查询,甚至用自然语言(AI)生成 SQL 语句。这个项目迅速获得社区认可,GitHub 收获 600+ Stars,成为 D1 生态中最受欢迎的管理工具之一。
D1 Manager 绝非简单的"表格查看器",而是一个功能完整的数据库管理平台,包含以下五大核心插件:
这是用户进入应用后的第一个页面。它会自动列出 D1 数据库中的所有数据表,以清晰的卡片形式展示表名和记录数量。点击任意一张表,即可查看其 Schema 信息(字段名、类型、主键约束等),以及表内的完整数据。数据以分页形式展示,每页默认 20 条记录,支持排序和筛选。对于需要在数据库层面了解数据结构的开发者来说,这个插件提供了比 CLI 更直观的信息呈现方式。
在 SQL 查询执行器中,用户可以直接输入任意 SQL 语句并立即执行。系统内置了安全沙箱机制——通过 node-sql-parser 库解析 SQL 语句的 AST,识别其操作类型。系统将 SQL 指令分为两类:只读操作(SELECT、PRAGMA、EXPLAIN)和修改操作(CREATE、INSERT、UPDATE 等)。DESTRUCTIVE 操作(如 DROP、DELETE、TRUNCATE)会被标记为危险并禁止执行,从而有效防止生产环境的误操作。这个设计体现了开发者对生产安全的重视。
这是 D1 Manager 最亮眼的功能。传统 SQL 要求开发者精确掌握语法,而语义查询允许用户用自然语言描述想要的数据,例如"找出最近一周注册的用户",AI 会自动生成对应的 SQL 语句并执行。
项目支持两种 AI 后端:
OPENAI_API_KEY 环境变量接入,默认使用 gpt-4.1-mini 模型,兼顾成本和效果AI 环境变量接入,默认使用 @cf/mistral/mistral-7b-instruct-v0.1 模型这种双后端设计让用户可以根据数据敏感性选择 OpenAI(数据发送给 OpenAI)或 Cloudflare(数据不离开 Cloudflare 网络)。
顾名思义,这是一个通过图形界面新增数据库记录的插件。与直接写 INSERT 语句相比,它提供了更友好的字段填写体验,减少了 SQL 语法错误的可能性。
数据管理少不了批量导入导出。D1 Manager 内置了 CSV 导入导出功能,支持将查询结果导出为 CSV 文件,或将 CSV 文件导入为数据库记录。这一功能对于数据迁移、备份等场景非常实用。
D1 Manager 的技术选型非常清晰,瞄准了 Cloudflare 生态系统:
前端框架:采用 SvelteKit(而非 Next.js 或 Nuxt),通过 @sveltejs/adapter-cloudflare 适配器将应用编译为 Cloudflare Workers / Pages 函数。这意味着应用天然运行在 Cloudflare 的全球边缘网络上,具有极低的访问延迟。
UI 框架:使用 TailwindCSS + daisyUI(一个基于 Tailwind 的组件库),提供现代化的界面外观。前端页面本身是 Svelte 组件,如 AddRecord.svelte、RunQuery.svelte 等,架构清晰。
国际化:内置 svelte-i18n,支持 6 种语言:英语、中文(简体/繁体)、西班牙语、日语、葡萄牙语。项目使用 inlang 在线编辑器管理翻译,贡献者可以通过 Fork + 提交 PR 的方式添加新语言。
AI 集成层:通过 @ai-d/aid 抽象 AI 调用,根据环境变量动态选择 OpenAI 或 Cloudflare Workers AI 作为后端。这种适配器模式使得切换 AI 供应商几乎不需要修改业务代码。
数据库交互:D1 Manager 本身不存储数据,所有操作直接透传到 D1。它通过 Cloudflare Workers 的 platform.env.DB_* 环境变量注入多个 D1 数据库绑定,DBMS 函数负责解析并映射为应用内部的数据库句柄。多个 DB_ 环境变量可以对应 UI 中的多个数据库切换。
代码安全设计:
D1 Manager 的部署目标是 Cloudflare Pages,而非通用容器化环境。README 提供了详细的四步部署指南:
npm run build,输出目录为 .svelte-kit/cloudflare部署本身不复杂,但对新手来说,需要理解"绑定 D1 数据库到环境变量"这个概念有一定门槛。环境变量 DB_* 的命名规则(以 DB 开头)也是隐性知识。
本地开发方面,项目提供了 .devcontainer 配置(Docker + docker-compose),开发者可以在容器中快速启动本地开发环境,无需在宿主机上安装 Node.js、pnpm 等工具链。这是现代项目开发的最佳实践。
注意:项目没有提供传统意义上的 Dockerfile 或 docker-compose.yml 用于生产部署。所有生产部署都依赖 Cloudflare Pages。这意味着如果你想在自己的服务器上运行 D1 Manager,需要自行改造(例如将 SvelteKit 适配器从 Cloudflare 换为 Node.js 适配器),目前社区暂无此类改造方案。
这是所有 AI 功能使用者最关心的问题。D1 Manager 的 AI 功能涉及将用户输入的自然语言查询发送给 AI 服务商:
对于在 Cloudflare Workers 生态内的用户(同时使用 D1 + Cloudflare AI),推荐使用 Cloudflare AI 后端以获得更好的数据隐私保护。
D1 Manager 的出现折射出一个更大的趋势:无服务器(Serverless)数据库的管理界面需求。传统数据库有 phpMyAdmin、pgAdmin,而无服务器数据库如 D1、PlanetScale、Turso 长期缺乏成熟的可视化管理工具。D1 Manager 为这一空白提供了示范方案。
此外,AI 辅助 SQL 生成正在成为数据库工具的标配功能。从 Vanna.ai 到 Chat2DB,再到 D1 Manager 的语义查询模块,用自然语言操作数据库正在从"黑科技"变为"基础功能"。这一趋势将持续降低数据库的使用门槛。
D1 Manager 是一个定位精准、设计考究的垂直领域工具。它瞄准 Cloudflare D1 的管理痛点,用现代化的 Web UI + AI 能力填补了生态空白。代码质量高(TypeScript 全面覆盖、Svelte 组件化、国际化完善),部署说明清晰,但对于非 Cloudflare 用户或需要本地部署的团队来说,门槛仍然存在。如果你是 Cloudflare D1 用户,这是一个强烈推荐的工具;如果不是,它的架构思路也值得学习参考。