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

Enterprise Edition(EE)를 Community Edition(CE)로 다운그레이드하려는 경우, 미리 몇 가지 단계를 수행해야 합니다.

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

Enterprise 전용 기능 비활성화

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

인증 메커니즘

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’로 설정된 모든 레코드를 제거해야 합니다.

Linux package (Omnibus)
sudo gitlab-rails runner "Integration.where(type: ['GithubService']).delete_all"
Self-compiled (source)
bundle exec rails runner "Integration.where(type: ['GithubService']).delete_all" production
note
만약 GitLab =< v13.0를 실행 중이라면 JenkinsDeprecatedService 레코드도 제거해야 하며, GitLab =< v13.6를 실행 중이라면 JenkinsService 레코드도 제거해야 합니다.

환경 변수 범위

GitLab Community Edition에서는 환경 변수 범위가 완전히 무시되므로, 이 기능을 사용 중이라면 구성에 일부 필요한 조정이 있을 수 있습니다. 특히 프로젝트에서 구성 변수가 동일한 키를 공유하지만 다른 범위를 가지는 경우에는 특히 신경 써야 합니다. 이런 경우에는 특정 환경을 위해 기대하지 않은 변수를 실수로 가져올 수 있습니다. 이 경우에는 이 상황에 맞는 올바른 변수가 있는지 확인해야 합니다.

이들 단계를 수행하면 데이터가 완전히 유지되므로, 필요하다면 언제든지 Enterprise Edition으로 다시 업그레이드하고 동작을 복원할 수 있습니다.

CE로 다운그레이드

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

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

Linux 패키지 설치

Linux 패키지 설치를 다운그레이드하려면 현재 설치된 패키지 위에 Community Edition 패키지를 설치할 수 있습니다. 이를 매뉴얼으로 수행할 수 있습니다. 방법은 다음과 같습니다.

Self-Compiled 설치

Self-Compiled 설치를 다운그레이드하려면 다음을 수행하세요:

  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