SuperAPI AI 工具集

migration

数据与分析

查看项目

更新于 10-15 22:17

技能介绍

用途:为 Rails 项目提供安全的数据库迁移执行流程,覆盖规划、开发测试、预发布(staging)和生产部署四个阶段,适用于 schema 变更、加列、数据回填等场景。

主要能力:

  • 规划阶段调用 skills/review-migration 评估锁行为、回滚策略、回填需求与性能影响;不可用时手动检查表锁时长、回滚路径、回填步骤并运行 EXPLAIN ANALYZE。
  • 大表列变更采用 expand-contract:拆成三个独立迁移文件(加可空列+索引、批量回填、强制 NOT NULL 并设默认值),禁止将 schema 变更与数据回填合并。
  • 每个迁移必须有可用的 down 方法,并在低流量窗口执行,必须用接近生产的数据量测试,不得跳过 staging。

使用方式: 开发测试阶段逐个部署迁移文件,执行: rails db:migrate && rails db:rollback && rails db:migrate bundle exec rspec spec/models/order_spec.rb spec/features/order_flow_spec.rb 预发布阶段: RAILS_ENV=staging bundle exec rails db:migrate curl https://staging.example.local/api/health curl https://staging.example.local/api/orders RAILS_ENV=staging bundle exec rails db:rollback 生产阶段: RAILS_ENV=production bundle exec rails db:migrate 并监控日志、诊断与冒烟测试,必要时执行 RAILS_ENV=production bundle exec rails db:rollback。

限制与门槛:各阶段设有硬性检查门(安全审查、回滚测试、幂等性、无 N+1、staging 验证、生产前 15 分钟错误率<0.1%、p99<500ms 等),未通过不得进入下一阶段;生产失败需评估日志与数据库状态,回滚失败需 DBA 介入。具体命令与阈值以资料为准。