数据库迁移(Migration)
一句话:对数据库表结构的改动(加字段、改类型、建表)用版本化的脚本记录下来,团队协作和多环境部署时能保持结构一致。
它是什么
数据库迁移是把"给表加一个字段"这类结构性改动写成脚本文件,按顺序执行、可追溯、可回滚,而不是有人直接手动改数据库导致团队成员之间、开发/生产环境之间的表结构不一致。
适合干什么
- 团队协作项目需要同步数据库结构变更
- 生产环境需要安全、可追溯地修改表结构
不适合干什么
- 个人练习项目、数据库结构几乎不变的简单场景(用不上这套机制)
普通人怎么用
不要直接在数据库管理工具里手动改表结构,而是用项目框架自带的迁移工具生成迁移脚本(描述这次要做什么改动),运行迁移命令让工具自动执行并记录版本。
进阶用户怎么用
生产环境执行迁移前,重要的结构性改动(尤其是删除字段、改变字段类型)要先在测试环境验证,并准备好回滚方案;大表加字段/加索引在某些数据库上可能锁表很久,要选择低峰期执行或用支持在线DDL的工具。
常见误区
- 以为直接在数据库里手动改结构更快更简单,短期看似方便,但团队协作、多环境同步时会造成结构不一致的大麻烦
- 大表结构变更没有评估锁表影响,直接在业务高峰期执行导致服务中断
和相似工具的区别
- 和直接手动改数据库结构的区别:迁移脚本有版本记录、可以在不同环境重复执行保持一致、出问题能追溯是哪次改动导致的
入门步骤
- 用项目框架自带的迁移工具生成迁移文件
- 在测试环境先执行验证
- 确认无误后在生产环境执行,并做好记录