数据库
数据库配置
从开发数据库开始,查看数据,再为上线准备独立生产库。
Web Cloudflare 使用 D1,通过 DB 绑定访问。先准备本地开发数据库,再为生产创建远端 D1。
开始前准备
在仓库根目录安装依赖。首次设置使用全新开发数据库。已有自定义数据库时,先阅读 更新已有项目,再执行迁移。
本地 D1
pnpm muse:init --yes --app cloudflare
pnpm db:seed:d1
pnpm dev:cf本地 D1 通过 Wrangler 的 DB 绑定使用,不需要 DATABASE_URL 或 Postgres 服务。远端资源创建、名称/ID 配置和迁移见 Cloudflare 部署。
确认结果
- 初始化与对应 seed 命令完成,没有数据库错误。
- 开发用户可以登录,保存的账号修改刷新后仍存在。
- Workers 数据保存在本地 D1,与远端生产数据分开。
常见问题
| 问题 | 处理方式 |
|---|---|
| 缺少 D1 绑定 | 检查 Workers Wrangler 的 DB;增加 DATABASE_URL 不能解决 D1 问题 |
| 已有生产数据 | 先备份并设计增量迁移,不重放新安装基线 |
开始新增业务表时
Schema 位于 packages/db/src/schema-d1.ts。生成对应 数据库迁移。共享查询在 packages/db/src/queries/,首个参数为 db,应用包装层绑定 driver。组件不直接访问数据库。
D1 不支持交互式 transaction();使用已支持的 batch() 路径,并测试原子性与失败行为。