更新摘要
- 修复首次部署时 Worker 已创建、DB
尚未绑定导致自动初始化被拦截的问题。
- 同一 Cloudflare 账号中其他服务的 D1 不再阻止 OmniMail
创建自己的数据库和表结构。
修复
- 兼容 Cloudflare 在首次构建前预创建 Worker
和初始化变量的流程。部署脚本核对库名无冲突后, 自动创建并绑定
omni-mail-db,再读取实际数据库
ID、执行全部待应用迁移并校验结果。
- 首次部署只核对默认库名
omni-mail-db 和历史库名
omnimail-db 的冲突,其他服务的数据库
保持原配置,不会被自动选作 OmniMail 的迁移目标。
- 按库名查找改用 D1
列表的名称过滤与分页,并匹配完整名称,避免将名称当作 UUID 查询,
或将近似名称的数据库误认为目标库。
- 已有有效 DB 绑定继续优先使用原数据库;绑定类型、ID
或权限异常时保留明确错误。
资源已创建但绑定暂未可见时只重查绑定,重复部署沿用原库并保留数据。
升级说明
- Web
1.1.0 可直接升级,不新增 D1
迁移、变量、Secret、资源绑定或 API 变更。
- 更新自己的 Fork,构建命令使用
npm run build,部署命令使用
npm run deploy。 单独执行
npx wrangler deploy 不会运行项目的建表迁移脚本。
- 首次部署不要求清空 Cloudflare 账号中的其他 D1。若缺少 DB
绑定且存在默认或历史同名库, 需核对后恢复绑定或显式填写对应
database_id;使用自定义库名的旧部署也应先恢复原绑定。
- 已完成
1.1.0
初始化的实例无需额外手动操作。更早版本升级仍需完成原有迁移,详见 Web
1.1.0 升级说明。
- 本次仅发布 Web 补丁版本;Float 和 Android
的版本及发布流程保持独立。
测试
- 部署相关回归覆盖空账号、预创建 Worker、其他服务 D1
共存、同名库冲突、名称分页、
权限失败、绑定传播延迟,以及完整建表后重复部署保留数据。
- 使用真实 Cloudflare 只读 API 核对数据库名称过滤;其他服务 D1
共存的首次部署场景已在 实际 Cloudflare 账号验证成功。
- 发布流程执行单元测试、Worker/D1 集成测试、类型检查、Lint、Web
构建、浏览器端到端测试 和 Wrangler dry-run,全部通过后生成 GitHub
Release。
发布
- Web 版本为
1.1.1,通过 GitHub Tag v1.1.1
发布,不包含额外下载文件。