기존 마이그레이션 삭제
GitLab 프로젝트에서 기존 마이그레이션을 제거할 때, 이전 릴리스에 이미 포함되었거나 현재 릴리스에 이미 실행된 가능성을 고려해야 합니다. 이로 인해 GitLab.com 및/또는 Self-Managed 인스턴스에서 이미 실행된 것일 수 있습니다.
이에 따라 기존 마이그레이션을 삭제할 수는 없으며, 다음과 같은 문제를 야기할 수 있습니다:
- 데이터베이스에 도입된 변경 사항이 제대로 롤백되지 않아 스키마 불일치가 발생합니다.
- 이제 코드베이스에 존재하지 않는 마이그레이션을 가리키는
schema_versions
테이블의 레코드가 남습니다.
삭제 대신에 마이그레이션을 비활성화할 수 있습니다.
마이그레이션 비활성화 전제 조건
마이그레이션이 다음과 같은 경우에 비활성화될 수 있습니다:
- GitLab.com에서 타임아웃 또는 일반적인 문제를 유발했을 때
- 더 이상 필요하지 않은 변경으로 인해 낡았을 때, 예를 들어, 기능 변경으로 인해 변경 사항이 필요하지 않은 경우
- 마이그레이션이 데이터 마이그레이션만 수행할 때, 즉, 데이터베이스 스키마를 변경하지 않는 경우
데이터 마이그레이션 비활성화 방법
마이그레이션을 비활성화하려면 다음 단계를 수행해야 합니다. 모든 유형의 마이그레이션에 동일하게 적용됩니다:
-
#up
,#down
또는#perform
메서드 내의 코드를 제거하고, 대신# no-op
주석을 추가하여 마이그레이션을 무효화시킵니다. - 코드가 삭제된 이유를 설명하는 주석을 추가합니다.
마이그레이션 비활성화는 명시적으로 데이터베이스 유지 관리자의 승인이 필요합니다.