数据库迁移技能Skill migration

数据库迁移技能用于安全地创建和管理可逆数据库迁移,包括迁移模板、预迁移清单、迁移类型分类和回滚策略,帮助开发者在修改数据库架构时实现安全部署和快速回滚。关键词:数据库迁移、回滚脚本、安全迁移、DevOps、数据库架构。

DevOps 0 次安装 0 次浏览 更新于 3/20/2026

name: 迁移 description: 创建带有回滚脚本的可逆数据库迁移。在修改数据库架构时使用。

迁移技能

目的

创建安全、可逆的数据库迁移。

迁移模板

使用:templates/migration-template.sql

-- 迁移:[描述]
-- 创建日期:[日期]
-- 作者:[姓名]

-- ==================== 向上迁移 ====================
BEGIN;

-- 您的迁移代码在这里
CREATE TABLE users (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  email VARCHAR(255) NOT NULL UNIQUE,
  created_at TIMESTAMP DEFAULT NOW()
);

COMMIT;

-- ==================== 向下迁移 ====================
BEGIN;

DROP TABLE IF EXISTS users;

COMMIT;

预迁移清单

使用:checklists/pre-migration.md

  • [ ] 向下迁移工作正常
  • [ ] 在生产类似数据上测试
  • [ ] 性能影响评估
  • [ ] 备份计划文档化
  • [ ] 部署时间考虑

迁移类型

安全迁移

  • 添加表
  • 添加可为空列
  • 添加索引(并发)
  • 添加外键(无验证)

风险迁移

  • 删除表(验证无引用)
  • 删除列(验证无使用)
  • 重命名列(可能破坏应用)
  • 更改列类型(可能丢失数据)

危险迁移

  • 清空表
  • 删除数据库
  • 移除约束

大表迁移

对于行数超过100万的表:

  1. 创建新结构
  2. 分批回填
  3. 添加约束
  4. 切换
  5. 清理旧结构

回滚策略

  • 在运行向上迁移前测试向下迁移
  • 文档化手动回滚步骤
  • 拥有生产备份
  • 考虑代码更改的功能标志