SuperAPI AI 工具集

data-migration

数据与分析

查看项目

更新于 10-16 07:26

技能介绍

用途:这是一个生产数据库迁移的硬性门禁技能,适用于任何 ALTER TABLE、列重命名/类型变更/删除、超过 1000 行的大批量 UPDATE 或 DELETE、大表建索引、数据回填或转换脚本之前。核心原则是每次迁移都必须有回滚方案,没有回滚计划的迁移是单向门。

主要能力:按风险对迁移分类(新增表/可空列、加索引或约束、列重命名或类型变更、列或表删除、超 10 万行回填、DROP TABLE 等破坏性操作),并给出对应策略。要求把迁移计划写入 docs/migrations/YYYY-MM-DD-description.md,包含摘要、风险等级、UP 与 DOWN 步骤、回滚计划、预计时长与验证清单。提供零停机模式:列重命名与类型变更采用多阶段部署(新旧列并存、双写、回填、切换读取、删除旧列);大表建索引使用 CREATE INDEX CONCURRENTLY;大批量回填分批执行并让出资源。

使用方式:先做干跑,如 psql $DATABASE_URL --dry-run -f migration.sql,再正式执行 psql $DATABASE_URL -f migration.sql --echo-all,执行期间用 pg_stat_activity 检查锁;迁移后核对行数、抽样数据、NOT NULL 约束与日志错误。回滚决策树规定:监控 10 分钟无错误即完成;出现错误且应用可容忍则热修复向前,不可容忍则立即执行 DOWN 迁移并记录复盘。

限制与硬性规则:不得在同一部署中删除仍被代码读取的列,需至少间隔一次部署;破坏性迁移必须有人工审批而非仅代码评审;不得跳过 DOWN 迁移;不得在流量高峰执行。资料未提供具体支持的数据库版本范围、工具集成方式与收费信息。