跳到主要内容

数据迁移知识体系概览

问题

数据库迁移涉及哪些核心知识?为什么需要系统化的迁移管理?

答案

什么是数据迁移

数据库迁移(Database Migration)是指对数据库 Schema(表结构、索引、约束等)进行版本化管理的过程。就像 Git 管理代码版本一样,Migration 工具管理数据库的版本变更。

V1: 创建 users 表

V2: 添加 email 字段

V3: 创建 posts 表 + 外键

V4: 添加 users.age 索引

为什么需要迁移管理

问题没有迁移管理使用迁移管理
多人协作手动同步 SQL,容易遗漏迁移文件纳入版本控制
环境一致性开发/测试/生产不同步顺序执行迁移确保一致
变更回滚手写反向 SQL自动生成 down 脚本
变更审计无记录有完整的变更历史
部署自动化依赖人工执行 SQLCI/CD 自动执行迁移

核心知识导航

本分类涵盖以下核心话题:

话题说明
迁移工具Flyway、Liquibase、ORM 迁移工具的原理与对比
零停机迁移不停服务变更数据库的策略与流程
数据同步与迁移实战跨库迁移、异构数据同步、双写方案
核心原则
  1. 所有 Schema 变更必须通过迁移文件:禁止直接在生产库执行 DDL
  2. 迁移文件一旦提交不可修改:只能新增迁移来修正
  3. 迁移必须可回滚:每个 up 对应一个 down
  4. 迁移文件纳入版本控制:与代码变更一起 Code Review

相关链接