Enterprise Edition(EE)에서 Community Edition(CE)로 다운그레이드

만약 Enterprise Edition(EE)에서 Community Edition(CE)로 다운그레이드하고 싶다면, 미리 몇 가지 단계를 거쳐야 합니다:

  • Linux 패키지 설치의 경우, 이러한 단계는 현재 EE 패키지 위에 CE 패키지를 설치하기 전에 수행됩니다.
  • 직접 컴파일한 설치의 경우, 이러한 단계는 원격을 변경하고 최신 CE 코드를 가져오기 전에 수행됩니다.

Enterprise 전용 기능 비활성화

가장 먼저 해야 할 일은 다음 기능을 비활성화하는 것입니다.

인증 메커니즘

Kerberos와 Atlassian Crowd는 Enterprise Edition에서만 사용할 수 있습니다. 다운그레이드하기 전에 이러한 메커니즘을 비활성화해야 합니다. 사용자에 대체 인증 방법을 제공해야 합니다.

데이터베이스에서 서비스 통합 항목 제거

GitHub 통합은 Enterprise Edition 코드베이스에서만 사용할 수 있으므로, Community Edition으로 다운그레이드하면 다음 오류가 표시됩니다:

내부 서버 오류 500이 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로 설정된 모든 레코드를 제거해야 합니다.

Linux 패키지 (Omnibus)
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에서 환경 범위는 완전히 무시됩니다. 따라서 이 기능을 사용 중이라면 구성에 필요한 조정 사항이 있을 수 있습니다. 특히 프로젝트에서 구성 변수가 동일한 키를 공유하지만 서로 다른 범위를 가지는 경우, 특정 환경에 예상치 못한 변수를 받을 수 있습니다. 이 경우 원하는 변수가 맞는지 확인하세요.

데이터는 전환 과정에서 완전히 보존되므로, 그대로 두면 언제든지 EE로 업그레이드하고 행동을 복원할 수 있습니다.

CE로 다운그레이드

위에서 언급한 단계를 수행한 후, 이제 GitLab 설치를 Community Edition으로 다운그레이드할 준비가 되었습니다.

의존성이 최신 상태인지 확인하려면 올바른 업데이트 가이드를 따르는 것을 잊지 마세요.

Linux 패키지 설치

Linux 패키지 설치를 다운그레이드하려면 현재 설치된 패키지 위에 Community Edition 패키지를 설치할 수 있습니다. 이를 수동으로 직접 할 수도 있습니다:

직접 컴파일한 설치

직접 컴파일한 설치를 다운그레이드하려면:

  1. GitLab 설치의 현재 원격을 Community Edition 원격으로 교체합니다.
  2. 최신 변경 사항을 가져와 최신 안정 브랜치를 확인합니다:

    git remote set-url origin git@gitlab.com:gitlab-org/gitlab-foss.git
    git fetch --all
    git checkout 8-x-stable