SuperAPI AI 工具集

d1-migration

部署与运维

查看项目

更新于 10-15 23:31

技能介绍

用途:为 Cloudflare D1 数据库提供一套受引导的迁移流程,配合 Drizzle ORM 使用,覆盖生成、检查、应用与排错。

主要能力:生成迁移 SQL(pnpm db:generate,输出到 drizzle/ 目录);在应用前人工检查 SQL,识别 Drizzle 因修改列默认值而触发的整表重建等破坏性写法,并可直接编辑 .sql 简化;分别应用到本地与远程(pnpm db:migrate:local、pnpm db:migrate:remote,或 npx wrangler d1 migrations apply DB_NAME --local/--remote);用 PRAGMA table_info 与查询 d1_migrations 表验证结果;修复部分应用导致的卡住迁移,通过手动插入 d1_migrations 记录后继续执行;批量插入按约 10 行分批,规避 D1 参数上限导致的静默失败;约定 Drizzle schema 用 camelCase、原始 SQL 用 snake_case。

使用方式:按生成、检查、本地应用、远程应用、验证的顺序执行,本地与远程都要应用后再测试。新项目建议先部署 Worker,再 npx wrangler d1 create 创建数据库,将 database_id 写入 wrangler.jsonc 的 d1_databases 绑定,重新部署后运行迁移。

限制:ALTER TABLE ADD COLUMN 在 SQLite 无 IF NOT EXISTS 变体,需先检查列是否存在或在应用代码中用 try/catch;D1 参数上限约 100-150,超限会失败。具体配置与命令细节以官方资料为准,其余信息暂未提供。