InfoGrab DocsInfoGrab Docs

마이그레이션 순서

요약

GitLab 17.1부터 마이그레이션은 GitLab 릴리즈 주기에 맞춘 커스텀 순서 체계를 사용하여 실행됩니다. 마이그레이션은 마이그레이션 파일 이름에 포함된 14자리 타임스탬프를 기준으로 순서대로 실행됩니다. GitLab은 다음과 같은 중요한 방식으로 표준 마이그레이션 동작을 확장하는 로직도 제공합니다:

GitLab 17.1부터 마이그레이션은 GitLab 릴리즈 주기에 맞춘 커스텀 순서 체계를 사용하여 실행됩니다. 이 변경으로 업그레이드 프로세스가 단순화되고 유지보수 및 지원이 용이해졌습니다.

17.1 이전 로직#

마이그레이션은 마이그레이션 파일 이름에 포함된 14자리 타임스탬프를 기준으로 순서대로 실행됩니다. 이 동작은 Rails 애플리케이션의 기본 동작입니다.

GitLab은 다음과 같은 중요한 방식으로 표준 마이그레이션 동작을 확장하는 로직도 제공합니다:

  • 추가 폴더에서 마이그레이션을 로드할 수 있습니다. 예를 들어, 포스트-배포 마이그레이션을 사용할 때 필요한 db/post_migrate 폴더와 db/migrate 폴더 모두에서 마이그레이션을 로드합니다.

  • 환경 변수 SKIP_POST_DEPLOYMENT_MIGRATIONS를 설정하면 post_migrate 폴더에서 마이그레이션을 로드하지 않습니다.

  • 모든 새 마이그레이션에는 GitLab 마이너 버전(또는 "마일스톤")을 반드시 지정해야 합니다.

17.1+ 로직#

마이그레이션은 다음 순서로 실행됩니다:

  • milestone이 정의되지 않은 마이그레이션은 타임스탬프 순서로 가장 먼저 실행됩니다.

  • milestone이 정의된 마이그레이션은 마일스톤 순서로 실행됩니다:

일반 마이그레이션은 포스트-배포 마이그레이션보다 먼저 실행됩니다.

  • 동일한 유형과 마일스톤을 가진 마이그레이션은 타임스탬프 순서로 실행됩니다.

예시:

  • milestone이 정의되지 않은 모든 마이그레이션.

  • 17.1 일반 마이그레이션.

  • 17.1 포스트-배포 마이그레이션.

  • 17.2 일반 마이그레이션.

  • 17.2 포스트-배포 마이그레이션.

  • 업그레이드의 각 마일스톤에 대해 반복합니다.

포스트-배포 마이그레이션의 새로운 동작#

이 변경으로 인해 포스트-배포 마이그레이션은 항상 특정 마일스톤의 끝에 정렬됩니다. 이전에는 SKIP_POST_DEPLOYMENT_MIGRATIONS가 설정되지 않은 경우 포스트-배포 마이그레이션이 일반 마이그레이션과 혼재되어 실행되었습니다. SKIP_POST_DEPLOYMENT_MIGRATIONS가 설정된 경우에는 포스트-배포 마이그레이션이 실행되지 않습니다.

마이그레이션 순서

GitLab v19.1
원문 보기
요약

GitLab 17.1부터 마이그레이션은 GitLab 릴리즈 주기에 맞춘 커스텀 순서 체계를 사용하여 실행됩니다. 마이그레이션은 마이그레이션 파일 이름에 포함된 14자리 타임스탬프를 기준으로 순서대로 실행됩니다. GitLab은 다음과 같은 중요한 방식으로 표준 마이그레이션 동작을 확장하는 로직도 제공합니다:

GitLab 17.1부터 마이그레이션은 GitLab 릴리즈 주기에 맞춘 커스텀 순서 체계를 사용하여 실행됩니다. 이 변경으로 업그레이드 프로세스가 단순화되고 유지보수 및 지원이 용이해졌습니다.

17.1 이전 로직#

마이그레이션은 마이그레이션 파일 이름에 포함된 14자리 타임스탬프를 기준으로 순서대로 실행됩니다. 이 동작은 Rails 애플리케이션의 기본 동작입니다.

GitLab은 다음과 같은 중요한 방식으로 표준 마이그레이션 동작을 확장하는 로직도 제공합니다:

  • 추가 폴더에서 마이그레이션을 로드할 수 있습니다. 예를 들어, 포스트-배포 마이그레이션을 사용할 때 필요한 db/post_migrate 폴더와 db/migrate 폴더 모두에서 마이그레이션을 로드합니다.

  • 환경 변수 SKIP_POST_DEPLOYMENT_MIGRATIONS를 설정하면 post_migrate 폴더에서 마이그레이션을 로드하지 않습니다.

  • 모든 새 마이그레이션에는 GitLab 마이너 버전(또는 "마일스톤")을 반드시 지정해야 합니다.

17.1+ 로직#

마이그레이션은 다음 순서로 실행됩니다:

  • milestone이 정의되지 않은 마이그레이션은 타임스탬프 순서로 가장 먼저 실행됩니다.

  • milestone이 정의된 마이그레이션은 마일스톤 순서로 실행됩니다:

일반 마이그레이션은 포스트-배포 마이그레이션보다 먼저 실행됩니다.

  • 동일한 유형과 마일스톤을 가진 마이그레이션은 타임스탬프 순서로 실행됩니다.

예시:

  • milestone이 정의되지 않은 모든 마이그레이션.

  • 17.1 일반 마이그레이션.

  • 17.1 포스트-배포 마이그레이션.

  • 17.2 일반 마이그레이션.

  • 17.2 포스트-배포 마이그레이션.

  • 업그레이드의 각 마일스톤에 대해 반복합니다.

포스트-배포 마이그레이션의 새로운 동작#

이 변경으로 인해 포스트-배포 마이그레이션은 항상 특정 마일스톤의 끝에 정렬됩니다. 이전에는 SKIP_POST_DEPLOYMENT_MIGRATIONS가 설정되지 않은 경우 포스트-배포 마이그레이션이 일반 마이그레이션과 혼재되어 실행되었습니다. SKIP_POST_DEPLOYMENT_MIGRATIONS가 설정된 경우에는 포스트-배포 마이그레이션이 실행되지 않습니다.