Cloudflare D1:Workers 上零运维的 SaaS 数据库
在 Cloudflare Workers 上用 D1 作为 ShipAny 应用的数据库——创建数据库、绑定、远程执行 Drizzle 迁移并初始化权限。
最后更新: 2026年10月8日
Cloudflare D1 是部署在 Worker 旁边的无服务器 SQLite 数据库。把 ShipAny TanStack 部署到 Cloudflare 时,它是默认数据库:不用管服务器、连接串和连接池。
ShipAny 帮你做了什么
- D1 驱动:从 Workers 环境读取
DB绑定,不需要连接串。 - SQLite 表结构:所有内置表通过 Drizzle 迁移创建。
- 精简打包:
DATABASE_PROVIDER为d1时,其他数据库驱动不会打进 Worker 包。 - 一条命令完成:
deploy-cloudflareAgent 技能会创建数据库、写入绑定、执行迁移、初始化角色权限,并且可以安全地重复运行。
配置步骤
- 创建数据库:
npx wrangler d1 create <name>,复制database_id。 - 在
wrangler.jsonc中把vars.DATABASE_PROVIDER设为"d1",并添加绑定:
"d1_databases": [
{ "binding": "DB", "database_name": "<name>", "database_id": "<id>", "migrations_dir": "drizzle" }
]
- 生成并执行迁移:
pnpm db:generate,然后npx wrangler d1 migrations apply <name> --remote。 - 初始化角色和权限,再用
pnpm run cf:deploy部署。
注意事项
- D1 用于 Cloudflare Workers 部署。 本地开发时,同样的表结构运行在普通 SQLite 文件上。
migrations_dir必须指向drizzle,否则 wrangler 找不到可执行的迁移。- D1 不够用或需要 Postgres 特性?换成通过 Hyperdrive 连接的 PostgreSQL。
