尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

cloudflare_temp_email 部署指南:使用 Wrangler CLI 初始化与升级 Cloudflare D1 数据库

发布时间:2026/9/15 16:36:43

资讯中心
01
ARTICLE

cloudflare_temp_email 部署指南:使用 Wrangler CLI 初始化与升级 Cloudflare D1 数据库

cloudflare_temp_email 部署指南:使用 Wrangler CLI 初始化与升级 Cloudflare D1 数据库
cloudflare_temp_email 部署指南使用 Wrangler CLI 初始化与升级 Cloudflare D1 数据库【免费下载链接】cloudflare_temp_emailCloudFlare free temp domain email 免费收发 临时域名邮箱 支持附件 IMAP SMTP TelegramBot项目地址: https://gitcode.com/GitHub_Trending/cl/cloudflare_temp_emailD1 是 cloudflare_temp_email 项目的核心存储层承载邮件原文、地址、用户、兑换码等全部业务数据。本文基于官方 CLI 部署文档系统讲解从创建数据库、执行初始化 SQL到按版本升级 schema 的完整命令链路并深入结合仓库中 db/schema.sql、db/ 目录下的增量补丁以及 worker/wrangler.toml.template 的绑定配置让读者既能照抄命令完成初始化也能理解每条命令背后的原理掌握后续版本升级的正确姿势。前置条件登录 Cloudflare在执行任何 D1 相关命令之前需要先完成 Wrangler 的认证。首次执行wrangler login命令时终端会提示登录请按照提示在浏览器中完成 Cloudflare 账号授权流程。wrangler login登录成功后Wrangler 会保存凭据后续wrangler d1系列命令即可直接操作你的 Cloudflare 账号。该登录态同时用于 Worker 部署、Pages 部署等其他 CLI 操作。初始化数据库1. 准备 Worker 配置文件项目为 Worker 提供了模板配置文件在worker目录下复制一份作为本地配置cd worker cp wrangler.toml.template wrangler.tomlwrangler.toml中与 D1 数据库相关的关键配置位于文件末尾的[[d1_databases]]段见 worker/wrangler.toml.template[[d1_databases]] binding DB database_name xxx database_id xxxbindingWorker 代码中访问数据库的环境变量名固定为DB。仓库中所有数据操作都通过c.env.DB.prepare(...)与c.env.DB.batch([...])执行例如 worker/src/address_auth.ts 中的地址鉴权查询、worker/src/admin_api/address_api.ts 中批量删除地址及关联数据的操作database_nameD1 数据库名称创建数据库时自定义database_idD1 数据库的唯一 ID创建成功后可在 Cloudflare 控制台查看。[!TIP]wrangler.toml已被 git 忽略不会提交到仓库可以放心写入真实的数据库名称与 ID。2. 创建 D1 数据库在worker目录下执行# Create D1 and execute schema.sql wrangler d1 create temp-email-db建议使用有明确含义的数据库名称例如temp-email-db或cloudflare-temp-email-prod。命令执行成功后控制台会输出该数据库的database_id将其填入wrangler.toml的[[d1_databases]]段同时把database_name也改为实际名称。之后你可以在 Cloudflare 控制台看到新建的 D1 数据库。3. 执行初始化 SQL新创建的 D1 数据库是空的需要执行仓库根目录下的 db/schema.sql 完成建表。注意必须加上--remote参数表示操作的是远程线上数据库不加时 Wrangler 默认操作本地模拟数据库仅用于本地开发调试wrangler d1 execute temp-email-db --file../db/schema.sql --remote其中temp-email-db是数据库名称--file../db/schema.sql指向仓库db/目录下的初始化脚本--remote指定作用到 Cloudflare 线上的 D1 实例。schema.sql一次性创建了项目运行所需的全部核心表见 db/schema.sql表名用途关键字段/索引raw_mails邮件原文存储address、message_id、raw、raw_blob、is_unread、created_at含 address/created_at/message_id 索引address邮箱地址name唯一、password、source_meta、created_at、updated_at含 name/updated_at/source_meta 索引auto_reply_mails自动回复规则address唯一、subject、message、enabledaddress_sender地址发信权限与额度address唯一、balance、enabledsendbox发件箱记录address、raw、created_atsettings键值配置存储key主键、valueusers/users_address用户系统与地址绑定用户表含user_email唯一绑定表含user_id、address_id索引user_roles/user_passkeys用户角色与 Passkey 登录角色表user_id唯一Passkey 表含用户key 复合唯一索引redeem_codes兑换码code唯一、redeem_type、redeemed0/1 约束、expires_at初始化完成后也可直接在 Cloudflare 控制台 D1 页面的Console标签中粘贴schema.sql内容并点击Execute执行等价于 CLI 方式或跳过 CLI 初始化待部署完成后在管理后台Quick Setup - Database区域点击Initialize Database按钮自动初始化详见 vitepress-docs/docs/en/guide/ui/d1.md。4. 验证初始化结果数据库创建并初始化后可以在 Cloudflare 控制台的Workers Pages - D1或Storage Databases - D1 SQL Database中看到该数据库点击进入即可查看schema.sql建出的各张表。若采用 CLI 方式也可以通过以下命令确认数据库存在wrangler d1 list更新数据库 Schema升级补丁为什么需要 patch 文件随着版本迭代数据库结构会持续演进。仓库采用「全量初始化 增量补丁」的双轨策略新部署用 db/schema.sql 一键建全量表结构而已在运行的老实例则通过 db/ 目录下的*patch.sql增量文件逐步升级避免对存量数据造成破坏。db/目录目前按日期命名保存了多份补丁db/例如2024-01-13-patch.sql为mails表新增message_id字段见 db/2024-01-13-patch.sql2024-04-03-patch.sql、2024-04-09-patch.sql、2024-04-12-patch.sql、2024-05-01-patch.sql、2024-05-08-patch.sql、2024-07-14-patch.sql、2024-08-10-patch.sql2025-09-23-patch.sql为address表新增password字段支撑地址密码登录见 db/2025-09-23-patch.sql2025-12-06-metadata.sql、2025-12-15-message-id-index.sql、2025-12-27-source-meta.sql2026-04-03-raw-blob.sql新增raw_blob列配合ENABLE_MAIL_GZIP实现邮件 gzip 压缩存储2026-08-30-mail-read-status.sql为raw_mails新增is_unread列支撑已读/未读状态见 db/2026-08-30-mail-read-status.sql2026-09-01-redeem-codes.sql为兑换码功能建表确定需要执行的补丁升级前必须先确认你当前部署的版本然后对照 CHANGELOG.md 找到该版本之后发布的更新确定从哪个补丁开始补齐再依次执行后续所有补丁。cd worker wrangler d1 execute temp-email-db --file../db/2024-01-13-patch.sql --remote wrangler d1 execute temp-email-db --file../db/2024-04-03-patch.sql --remote[!WARNING] 补丁必须按日期先后顺序执行不可跳号。每个补丁文件都是标准的ALTER TABLE ... ADD ...增量语句重复执行同一补丁会导致重复添加字段而报错因此务必记录好当前实例已执行的补丁清单。从源码确认补丁的对应功能每个补丁并非孤立存在通常与 Worker 的某个功能开关联动。例如执行2026-08-30-mail-read-status.sql后还需在wrangler.toml中开启ENABLE_MAIL_READ_STATUS true见 worker/wrangler.toml.template该开关被注释明确要求「先执行数据库迁移再启用」执行2026-04-03-raw-blob.sql后可配合ENABLE_MAIL_GZIP true启用 gzip 压缩存储见 worker/wrangler.toml.template执行2025-09-23-patch.sql后可在wrangler.toml中开启ENABLE_ADDRESS_PASSWORD true启用地址密码功能见 worker/wrangler.toml.template。这种「迁移脚本 功能开关」的组合是识别补丁归属功能的快捷方法先在 db/ 找到目标日期补丁再到 worker/wrangler.toml.template 的[vars]段检索对应说明。补丁的底层执行链路执行补丁后Worker 代码即可通过 D1 binding 读取新增字段。以地址鉴权为例worker/src/address_auth.ts 中通过c.env.DB.prepare(...).first()查询地址密码正是依赖2025-09-23-patch.sql新增的address.password字段而邮件已读状态的读取与更新则依赖raw_mails.is_unread列。理解这条「SQL 补丁 → D1 表结构 →c.env.DB运行时查询」的链路有助于在升级异常时快速定位是补丁未执行还是配置未开启。补充其他常用 D1 操作本地调试wrangler d1 execute temp-email-db --file../db/schema.sql不带--remote在本地 Miniflare 模拟环境中执行适合开发联调查看数据库wrangler d1 list列出账号下所有 D1 数据库及 ID可用于核对wrangler.toml配置控制台图形化操作打开 D1 数据库详情页的Console标签可直接粘贴执行schema.sql或任意补丁文件内容见 vitepress-docs/docs/en/guide/ui/d1.md适用于没有本地 Wrangler 环境的场景管理后台一键初始化部署完成后进入管理页面的Quick Setup - Database点击Initialize Database按钮即可完成全量初始化无需手工执行 SQL。常见问题排查现象可能原因处理建议wrangler d1 create报认证失败未登录或登录态过期重新执行wrangler loginWorker 部署后查询报表不存在schema.sql未执行或未加--remote执行到了本地库重新执行wrangler d1 execute temp-email-db --file../db/schema.sql --remote某个功能报字段不存在对应版本的 patch 未执行对照 CHANGELOG.md 确认版本补齐缺失补丁并按序执行补丁重复执行报错字段已存在该补丁已执行过跳过即可建议维护已执行补丁清单database_id与线上不一致wrangler.toml配置未更新用wrangler d1 list核对 ID 后更新 worker/wrangler.toml.template 对应配置至此你已经掌握了 cloudflare_temp_email 项目 D1 数据库从「创建 → 初始化 → 增量升级 → 排障」的完整 CLI 操作流程。初始化后即可继续参考 worker 部署文档 完成 Worker 上线或通过 GitHub Actions 自动部署 将数据库变更与发布流程一体化。【免费下载链接】cloudflare_temp_emailCloudFlare free temp domain email 免费收发 临时域名邮箱 支持附件 IMAP SMTP TelegramBot项目地址: https://gitcode.com/GitHub_Trending/cl/cloudflare_temp_email创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。