기존 마이그레이션 삭제
GitLab v19.4요약
GitLab 프로젝트에서 기존 마이그레이션을 제거할 때는 해당 마이그레이션이 이미 과거 릴리스나 현재 릴리스에 포함되어 GitLab.com 또는 GitLab Self-Managed 인스턴스에서 이미 실행되었을 가능성을 고려해야 합니다.
GitLab 프로젝트에서 기존 마이그레이션을 제거할 때는 해당 마이그레이션이 이미 과거 릴리스나 현재 릴리스에 포함되어 GitLab.com 또는 GitLab Self-Managed 인스턴스에서 이미 실행되었을 가능성을 고려해야 합니다.
이러한 이유로 기존 마이그레이션은 삭제할 수 없습니다. 삭제하면 다음과 같은 문제가 발생할 수 있습니다.
- 데이터베이스에 적용된 변경 사항이 올바르게 롤백되지 않아 스키마 불일치가 발생합니다.
- 코드베이스에 더 이상 존재하지 않는 마이그레이션을 가리키는 레코드가
schema_versions테이블에 남습니다.
삭제하는 대신 마이그레이션을 비활성화하는 방법을 선택할 수 있습니다.
마이그레이션 비활성화 사전 요구 사항#
다음 조건에 해당하면 마이그레이션을 비활성화할 수 있습니다.
- GitLab.com에서 타임아웃이나 일반적인 문제를 일으킨 경우입니다.
- 기능 변경으로 인해 변경 사항이 더 이상 필요하지 않아 마이그레이션이 폐기된 경우입니다.
- 마이그레이션이 데이터 마이그레이션 전용이어서 데이터베이스 스키마를 변경하지 않는 경우입니다.
데이터 마이그레이션 비활성화 방법#
마이그레이션을 비활성화하려면 모든 유형의 마이그레이션에 다음 단계를 적용합니다.
#up,#down또는#perform메서드 내부의 코드를 제거하고 대신# no-op주석을 추가하여 마이그레이션을 no-op으로 전환합니다.- 코드를 제거한 이유를 설명하는 주석을 추가합니다.
마이그레이션 비활성화에는 Database Maintainer의 명시적인 승인이 필요합니다.