Help us learn about your current experience with the documentation. Take the survey.
删除现有的迁移
从 GitLab 项目中删除现有的迁移时,必须考虑到这些迁移可能已经包含在过去的版本或当前版本中,因此已经在 GitLab.com 和/或 GitLab 自托管实例上执行过。
因此,无法直接删除现有的迁移,因为这可能导致:
- 架构不一致,因为引入到数据库的更改没有被正确回滚。
- 在
schema_versions表中留下记录,指向代码库中不再存在的迁移。
我们可以选择禁用迁移,而不是删除。
禁用迁移的前提条件
在以下情况下,可以禁用迁移:
- 它们在 GitLab.com 上导致了超时或一般性问题。
- 它们已过时,例如由于功能变更,更改不再必要。
- 迁移仅是数据迁移,即迁移不更改数据库架构。
如何禁用数据迁移?
为了禁用迁移,以下步骤适用于所有类型的迁移:
- 通过移除
#up、#down或#perform方法内部的代码,将其转换为空操作,并添加# no-op注释代替。 - 添加注释解释为什么代码被移除。
禁用迁移需要数据库管理员的明确批准。