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 任务:

  1. 删除之前版本的所有迁移
  2. 更新相关文件中的 schema 版本引用
  3. 清理已完成的批量后台迁移(finalized batched background migrations)
  4. 更新用于数据库回滚的 CI 配置

参数

参数 描述
[origin/16-10-stable-ee] 用于迁移压缩的基准 Git 引用。这应该是上一个版本的稳定分支。

故障排除

缺失的 schema 引用

如果遇到与缺失 schema 引用相关的错误,请检查:

  • 可能引用旧迁移的迁移规范文件(Migration spec files)
  • 可能需要手动更新的后台迁移文件(Background migration files)
  • 引用特定迁移版本的文档

相关文档