EE에서 CE로 다운그레이드
만약 Enterprise Edition (EE)를 Community Edition (CE)로 다운그레이드하기로 결정한다면, 먼저 몇 가지 단계를 거쳐야 합니다.
- Linux 패키지 설치의 경우, 이러한 단계는 현재 EE 패키지 위에 CE 패키지를 설치하기 전에 수행됩니다.
- 자체 컴파일 설치의 경우, 이러한 단계는 다음과 같은 순서로 진행됩니다: 원격지를 변경하고 최신 CE 코드를 가져오기 전에 수행됩니다.
엔터프라이즈 전용 기능 비활성화
첫 번째로 해야 할 일은 다음 기능을 비활성화하는 것입니다.
인증 메커니즘
Kerberos 및 Atlassian Crowd는 Enterprise Edition에서만 사용 가능합니다. 다운그레이드하기 전에 이러한 메커니즘을 비활성화해야 합니다. 사용자에게 대체 인증 방법을 제공해야 합니다.
데이터베이스에서 서비스 통합 항목 제거
GitHub 통합은 Enterprise Edition 코드베이스에서만 사용할 수 있으므로 Community Edition으로 다운그레이드하면 다음 오류가 표시됩니다:
Completed 500 Internal Server Error in 497ms (ActiveRecord: 32.2ms)
ActionView::Template::Error (The single-table inheritance mechanism failed to locate the subclass: 'GithubService'. This
error is raised because the column 'type' is reserved for storing the class in case of inheritance. Please rename this
column if you didn't intend it to be used for storing the inheritance class or overwrite Integration.inheritance_column to
use another column for that information.)
모든 통합은 각각의 프로젝트에 자동으로 생성됩니다. 이 오류를 피하려면 데이터베이스에서 type 속성이 GithubService
로 설정된 모든 레코드를 제거해야 합니다.
sudo gitlab-rails runner "Integration.where(type: ['GithubService']).delete_all"
bundle exec rails runner "Integration.where(type: ['GithubService']).delete_all" production
GitLab =< v13.0
를 사용 중이라면 JenkinsDeprecatedService
레코드도 제거해야 합니다.
GitLab =< v13.6
를 사용 중이라면 JenkinsService
레코드를 제거해야 합니다.환경 변수 스코프
GitLab Community Edition에서는 환경 변수 스코프가 완전히 무시됩니다. 따라서 이 기능을 사용 중이라면 구성에 필요한 조정 사항이 있을 수 있습니다. 특히 프로젝트에서 구성 변수가 동일한 키를 공유하지만 다른 스코프를 가진 경우입니다. 이러한 경우 실수로 특정 환경에 예상치 못한 변수를 얻을 수 있습니다. 이 경우 올바른 변수가 있는지 확인하세요.
이전에 설정된 데이터는 전환 과정에서 완전히 보존되므로 버전을 업그레이드하여 동일한 동작을 복원할 수 있습니다.
CE로 다운그레이드
위에서 언급한 단계를 수행한 후, 이제 GitLab 설치를 Community Edition으로 다운그레이드할 준비가 되었습니다.
의존성이 모두 최신 상태인지 확인하려면 올바른 업데이트 가이드를 따르도록 하세요.
Linux 패키지 설치
Linux 패키지 설치를 다운그레이드하려면 현재 설치된 것 위에 Community Edition 패키지를 설치할 수 있습니다. 이를 매뉴얼으로 할 수도 있습니다.
자체 컴파일된 설치
자체 컴파일된 설치를 다운그레이드하려면 다음을 수행하십시오:
- GitLab 설치의 현재 원격지를 Community Edition 원격지로 바꿉니다.
-
최신 변경 사항을 가져와서 최신 안정 버전 브랜치로 전환합니다.
git remote set-url origin git@gitlab.com:gitlab-org/gitlab-foss.git git fetch --all git checkout 8-x-stable