背景
Qingyu’Blog 最初使用 Cloudflare KV 作为存储后端,后来迁移到 D1(SQLite):现在的 KV 不再存文章,只用于限流与去重(
rate:cmt:* / rate:like:* / rate:view:* / liked:* / viewed:* / ai:*)。D1 是主存储。因此下面的迁移脚本只服务于从旧版 KV 单 key 存储升级的场景——全新部署不需要迁移。迁移方式
本地执行
CLOUDFLARE_API_TOKEN 需要同时具备 KV 读取与 D1 写入权限;BLOG_D1_ID 用于确认目标数据库(非 dry-run 时必填)。
预览(推荐先执行)
正式迁移
npx wrangler@3.90.0 d1 execute blog --remote --file=... 执行。
GitHub Actions
- Actions 标签页 → Migrate KV to D1
- Run workflow → 选择
migrate模式(另有dry-run模式)
迁移内容
验证
✅ 迁移完成:N 篇文章及其评论/统计 + 管理员认证 的总结(+ 管理员认证 只在 admin:auth 存在时出现)。
相关页面
- 数据库结构 —— 各表与关键列
- 迁移脚本 —— 编号到 0032 的 D1 schema 迁移与三层幂等策略
- Cloudflare Workers 部署 —— 部署时 CI 会自动执行
migrations/*.sql
