기존 마이그레이션 삭제

GitLab 프로젝트에서 기존 마이그레이션을 제거할 때는 해당 마이그레이션이 이미 이전 릴리스에 포함되었거나 현재 릴리스에 포함되어 이미 GitLab.com 및/또는 온프레미스 인스턴스에서 실행된 가능성을 고려해야 합니다.

따라서 기존 마이그레이션을 삭제하는 것은 불가능하며, 이로 인해 다음과 같은 문제가 발생할 수 있습니다.

  • 데이터베이스에 도입된 변경 사항이 제대로 되돌아가지 않아 스키마 불일치가 발생할 수 있습니다.
  • 이제 코드베이스에 존재하지 않는 마이그레이션을 가리키는 ‘schema_versions’ 테이블에 레코드가 남게 됩니다.

삭제하는 대신에 해당 마이그레이션을 비활성화할 수 있습니다.

마이그레이션 비활성화 전 요구 사항

마이그레이션은 다음의 경우 비활성화될 수 있습니다.

  • GitLab.com에서 시간 초과 또는 일반적인 문제를 발생시킬 경우.
  • 해당 마이그레이션이 더 이상 필요하지 않은 경우, 예를 들어 기능 변경으로 인해 변경 사항이 필요하지 않은 경우.
  • 마이그레이션이 데이터 마이그레이션만 수행하는 경우, 즉, 데이터베이스 스키마를 변경하지 않는 경우.

데이터 마이그레이션 비활성화 방법

마이그레이션을 비활성화하려면 다음 단계를 모든 종류의 마이그레이션에 적용합니다.

  1. #up, #down, 또는 #perform 메서드 내의 코드를 제거하고 대신에 # no-op 주석을 추가하여 마이그레이션을 무작위로 변경합니다.
  2. 코드가 없어진 이유에 대해 설명하는 주석을 추가합니다.

마이그레이션을 비활성화하려면 명시적으로 데이터베이스 관리자의 승인이 필요합니다.

예시