Help us learn about your current experience with the documentation. Take the survey.
迁移压缩
迁移压缩
迁移压缩(Migration squashing)将多个数据库迁移合并为单一的 schema 定义,旨在提升数据库初始化的性能,并维持一个易于管理的迁移历史。
何时使用迁移压缩
在以下情况下,应使用迁移压缩:
- 在每个主要发布周期的开始
- 在必需的停止(required stop)之后
- 当迁移数量显著增加时(通常超过 200 个迁移)
压缩迁移
要从之前的版本(例如 16.10)压缩迁移,请运行:
bundle exec rake "gitlab:db:squash[origin/16-10-stable-ee]"此 Rake 任务:
- 删除之前版本的所有迁移
- 更新相关文件中的 schema 版本引用
- 清理已完成的批量后台迁移(finalized batched background migrations)
- 更新用于数据库回滚的 CI 配置
参数
| 参数 | 描述 |
|---|---|
[origin/16-10-stable-ee] |
用于迁移压缩的基准 Git 引用。这应该是上一个版本的稳定分支。 |
故障排除
缺失的 schema 引用
如果遇到与缺失 schema 引用相关的错误,请检查:
- 可能引用旧迁移的迁移规范文件(Migration spec files)
- 可能需要手动更新的后台迁移文件(Background migration files)
- 引用特定迁移版本的文档