SuperAPI AI 工具集

data-migration-scripts

数据与分析

查看项目

更新于 10-15 09:12

技能介绍

用途

Data Migration Scripts 用于创建健壮、安全且可回滚的数据迁移脚本,面向数据库模式变更与数据转换,目标是在尽量降低停机时间的前提下完成迁移。

适用场景

资料列出的使用场景包括:

  • 数据库模式变更
  • 添加、删除或修改列
  • 在不同数据库系统之间迁移
  • 数据转换与清理
  • 拆分或合并表
  • 修改数据类型
  • 添加索引与约束
  • 数据回填
  • 多租户数据迁移

主要能力

该技能围绕可逆迁移、数据验证和零停机部署展开。参考指南目录中提供以下详细实现:

  • Knex.js Migrations(Node.js)
  • Alembic Migrations(Python/SQLAlchemy)
  • Large Data Migration with Batching(大批量数据分批迁移)
  • Zero-Downtime Migration Pattern(零停机迁移模式)
  • Migration Validation(迁移验证)
  • Cross-Database Migration(跨数据库迁移)

使用方式

资料给出一个基于 Knex.js 的最小可用示例,文件路径为 migrations/20240101000000_add_user_preferences.ts,导出 up 函数。示例中创建 user_preferences 表,包含 uuid 主键、引用 users 表 id 的 user_id 外键(级联删除)、jsonb 类型的 preferences 字段(默认 {})、created_at 与 updated_at 时间戳,并为 user_id 建立索引;随后通过原始 SQL 将既有数据插入新表,使用 jsonb_build_object 构造 preferences,其中 theme 使用 COALESCE(theme, 'light')。资料注明完整实现参见参考指南。

最佳实践

资料以 DO / DON'T 形式列出实践建议。

应当做:

  • 始终同时编写 up 和 down 迁移
  • 在类生产数据上测试迁移
  • 对原子操作使用事务
  • 分批处理大数据集
  • 在数据插入之后再添加索引
  • 迁移后验证数据
  • 记录进度与错误
  • 对应用代码变更使用功能开关
  • 运行迁移前备份数据库
  • 测试回滚流程
  • 记录迁移的副作用
  • 对所有迁移进行版本控制
  • 使用幂等操作

不应做:

  • 在生产环境运行未测试的迁移
  • 在没有向后兼容的情况下做破坏性变更
  • 在单个事务中处理数百万行
  • 跳过回滚实现
  • 忽略迁移失败
  • 修改旧的迁移
  • 在没有备份的情况下删除数据
  • 在生产环境手动运行迁移

限制

资料未提供该技能的具体安装命令、收费方式、支持平台、性能指标或效果保证,这些信息暂未提供。