00 / 00
Cloudflare Workers 部署
用 Worker 的 D1 binding 部署 01MVP,并为受信任的 Node 服务提供数据库代理。
Cloudflare 路径运行同一套 TanStack Start、oRPC、认证和业务代码。Worker 通过 DB binding 访问 D1,不需要数据库连接串或连接池。
配置 D1 binding
products/01mvp/apps/web/wrangler.jsonc 中保留数据库名称和 ID:
{
"d1_databases": [
{
"binding": "DB",
"database_name": "your-production-db",
"database_id": "<database-id>",
"migrations_dir": "../../packages/db/migrations",
"migrations_pattern": "**/migration.sql"
}
]
}新产品应创建自己的 D1 数据库并替换这些生产标识,不要复用 01MVP 的数据库。
Migration
vpr @01mvp/product#db:generate
vpr @01mvp/product#db:deploy先部署 migration,再部署读取新 schema 的代码。远端命令只操作当前 wrangler.jsonc 指向的 D1,运行前要确认目标账号和数据库名称。
Secret 与部署
如果没有 Node/Docker 运行时访问 D1,可以不启用数据库代理 token。需要代理时设置:
vp exec wrangler secret put D1_PROXY_TOKEN --config products/01mvp/apps/web/wrangler.jsonc然后执行产品部署命令:
vpr @01mvp/product#deploy:cf/_internal/d1 只接受携带正确 Bearer token 的服务端 POST 请求,并有请求体、SQL 长度和 batch 数量限制。浏览器代码不应知道这个 token。
验证
curl -fsS https://<your-domain>/api/health
curl -I https://<your-domain>/
curl -I https://<your-domain>/auth/login再用真实浏览器检查登录、后台和保留的付费能力。未授权请求访问 /_internal/d1 应返回拒绝状态,而不是查询结果。
如果以后完全迁移到 Cloudflare,只需停止 Node 部署和代理调用;Worker 内的业务代码继续通过 DB binding 访问同一个 D1。
这篇文档有问题?