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