用途
Database Migration Management 用于管理数据库迁移与模式版本控制,帮助在数据库演进过程中实现有版本控制、可回滚、可追踪的数据转换策略。它适用于 PostgreSQL 等数据库的场景,并包含迁移框架与生产部署模式。
主要能力
根据资料,该技能涵盖以下方面:
- 模式版本控制与演进
- 数据转换与清理
- 添加或删除表与列
- 索引创建与优化
- 迁移测试与验证
- 回滚计划与执行
- 多环境部署
使用方式
资料提供了一个最小可用示例,核心是建立迁移追踪与日志机制:
-
创建迁移追踪表 schema_migrations,字段包括 version(BIGINT 主键)、name(VARCHAR(255),非空)、executed_at(TIMESTAMP,默认 CURRENT_TIMESTAMP)、duration_ms(INTEGER)、checksum(VARCHAR(64))。
-
创建迁移日志表 migration_logs,字段包括 id(UUID 主键,默认 gen_random_uuid())、version(BIGINT,非空)、status(VARCHAR(20),非空)、error_message(TEXT)、rolled_back_at(TIMESTAMP)、executed_at(TIMESTAMP,默认 CURRENT_TIMESTAMP)。
-
创建用于记录迁移的函数 record_migration,接收 p_version(BIGINT)、p_name(VARCHAR)、p_duration_ms(INTEGER)参数,返回 void。资料中该函数体的完整实现被省略,提示参见参考指南获取完整实现。
此外,references/ 目录中提供以下详细实现指南:
- Adding Columns(添加列)
- Renaming Columns(重命名列)
- Creating Indexes Non-blocking(非阻塞创建索引)
- Data Transformations(数据转换)
- Table Structure Changes(表结构变更)
适用场景
当需要规划迁移、进行版本控制、制定回滚策略或在 PostgreSQL 等数据库中进行数据转换时使用。具体包括上述“主要能力”所列的场景。
最佳实践
资料给出以下建议:
应当做(✅ DO):
- 遵循既定的模式与约定
- 编写整洁、可维护的代码
- 添加适当的文档
- 部署前充分测试
不应做(❌ DON'T):
- 跳过测试或验证
- 忽略错误处理
- 硬编码配置值
限制
资料未提供关于支持的数据库版本范围、性能指标、收费方式或具体平台限制的说明。record_migration 函数的完整实现未在提供的文本中给出,需查阅参考指南。完整的安装命令与具体使用步骤暂未提供。