从 Deploy Classic 迁移
迁移 dash.deno.com、deployctl、旧 serve、KV、Queue、域名和 Subhosting v1
Deno 官方把 Deploy Classic 与 Subhosting v1 的关停日期标为 2026-07-20。该日期已经过去;仍有 Classic 资源时,不要假设项目已自动迁移,立即在 console.deno.com 与当前官方状态中确认,并按下面清单处理。
不是原地升级
- Classic 项目不会自动转成新 app;新平台需要 organization。
deployctl迁移为内置deno deploy。- GitHub integration 使用新平台集成构建,不再沿用旧 Action 配置假设。
- Classic 一套环境变量要拆成 Production、Development 与 Build contexts。
- 自定义域名需要重新配置并保留 DNS 传播窗口。
代码与数据差异
- import { serve } from "https://deno.land/std/http/server.ts";
- serve(() => new Response("hello"));
+ Deno.serve(() => new Response("hello"));
- 旧 std
serve()在新 Deploy warmup 可能超时;升级依赖并使用Deno.serve()。 Deno.cron()可以继续使用,但要复核 UTC、重试与 timeline 行为。- Classic KV 数据不会自动迁移,需要联系官方支持并验证数据完整性。
- 新 Deploy 当前不支持
Deno.Kv.enqueue()/listenQueue();改用外部消息队列或数据库 job queue。 - Subhosting v1 的 project/deployment 模型迁移为 v2 的 app/revision,并需要新的 API/SDK 映射。
切流清单
- 盘点项目、域名、变量、cron、KV、queues、region 和 Subhosting 调用。
- 在新 organization 创建 app,用非生产 timeline 验证构建与运行。
- 迁移 secret/context,验证不泄漏。
- 迁移数据库与后台任务,做数量、hash 或业务级对账。
- 配置域名证书挑战和新 DNS,保留回滚窗口。
- 验证 logs、traces、metrics、告警与成本,再停旧资源。