데이터베이스 필요 정지
이 페이지는 어떤 데이터베이스 변경이 GitLab 업그레이드 정지를 요구하는지를 설명합니다. 포괄적인 원인 목록에 관심이 있다면, 필요 정지의 원인을 참조하세요.
필요 정지는 이제 X.2, X.5, X.8 및 X.11의 마이너 버전에서 일관되게 발생할 것입니다. 이는 사용자에게 예측 가능한 업그레이드 경로를 보장하기 위함입니다. 정지가 필요한 데이터베이스 변경 사항은 이러한 릴리스를 활용할 수 있습니다. 아래의 지침은 필수 업그레이드 정지를 추가하는 데 사용됩니다.
정지를 요구하는 일반적인 데이터베이스 변경
오래 실행되는 마이그레이션 완료
마이그레이션이 오래 걸리면, 많은 고객이 업그레이드 중 시간 초과를 겪을 수 있습니다. 지원 요청의 증가로 인해 필요한 정지를 도입해야 할 수 있습니다. 특히 대규모 고객에게는 모든 백그라운드 마이그레이션이 이러한 문제를 일으킬 수 있지만, 우리는 일반적으로 영향이 광범위할 때만 정지를 도입합니다.
- 원인: 업그레이드에 1시간 이상 걸릴 경우, omnibus가 시간 초과됩니다.
- 완화: 다음 필수 정지 이후 첫 번째 마이너 버전에서 완료 일정을 잡습니다.
부적절하게 완료된 백그라운드 마이그레이션
다음의 경우 완화 조치를 위해 필요한 정지를 도입해야 할 수 있습니다:
- 백그라운드 마이그레이션이 완료되지 않았고,
-
그 백그라운드 마이그레이션에 의존하는 마이그레이션이 작성되었습니다.
- 원인: 백그라운드 마이그레이션이 완성되지 않으면 의존 마이그레이션이 실패할 수 있습니다.
- 완화: 의존 마이그레이션을 저술하기 전에 모든 백그라운드 마이그레이션이 완료되었는지 확인합니다.
마이그레이션 제거
마이그레이션이 제거되면, 고객이 필요 변경을 놓치지 않도록 필요한 정지를 도입해야 할 수 있습니다.
- 원인: 필요 마이그레이션이 제거되었기 때문에 의존 마이그레이션이 실패할 수 있으며, 애플리케이션이 작동하지 않을 수 있습니다.
- 완화: 마이그레이션이 계획된 필요 정지의 일환으로 존재한 후에만 제거되도록 합니다.
매우 오래된 마이그레이션 타임스탬프
마이그레이션 타임스탬프가 오래된 경우 (> 3주, 또는 최근 정지 이전의 경우), 이러한 시나리오가 문제를 일으킬 수 있습니다:
- 마이그레이션이 최신 타임스탬프가 있는 다른 마이그레이션에 의존하고 이전 릴리스에서 필요 정지 이후에 도입된 경우, 새로운 마이그레이션이 수업 선행 마이그레이션보다 먼저 순차적으로 실행될 수 있으며, 이로 인해 실패할 수 있습니다.
-
마이그레이션 타임스탬프 ID가 마지막 정지 이전이면, 팀이 필요 정지에서 다른 마이그레이션을 줄일 때 우연히 축소될 수 있습니다.
- 원인: 나중에 도입된 마이그레이션에 의존하는 경우 마이그레이션이 실패할 수 있습니다. 또는 필요 정지 이후 마이그레이션이 우연히 축소될 수 있습니다.
- 완화: 마이그레이션 타임스탬프가 릴리스 날짜 내에 있도록 하고, 마지막 필요 정지 이전의 날짜가 아님을 확실히 합니다.
마이그레이션 관련 도구의 버그
몇 가지 경우에 마이그레이션 관련 도구의 버그로 인해 정지를 도입해야 했습니다. 우리는 이러한 문제를 테스트에서 예방하고자 하지만, 때때로 발생합니다.
- 원인: 이러한 문제를 너무 늦게 인식한 몇 가지 다른 원인이 있었습니다.
- 완화: 일반적으로 마이그레이션에 대해 수정 사항을 백포트하려고 시도하지만, 경우에 따라 불가능할 수 있습니다.
필요 정지 추가
위의 시나리오 중 하나에 해당하는 변경 사항을 도입할 계획이라면, 필요 정지 추가를 참조하세요.