EE에서 CE로 다운그레이드

Enterprise Edition(EE)에서 Community Edition(CE)으로 다운그레이드하려는 경우, 사전에 따라야 할 몇 가지 단계가 있습니다:

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

엔터프라이즈 전용 기능 비활성화

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

인증 메커니즘

Kerberos 및 Atlassian Crowd는 Enterprise Edition에서만 사용할 수 있습니다.

다운그레이드하기 전에 이러한 메커니즘을 비활성화해야 합니다. 사용자에게 대체 인증 방법을 제공하는 것을 잊지 마세요.

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

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

완료됨 500 내부 서버 오류 497ms (ActiveRecord: 32.2ms)

ActionView::Template::Error (단일 테이블 상속 메커니즘이 하위 클래스를 찾지 못했습니다: 'GithubService'. 이 오류는 'type' 열이 상속의 경우 클래스를 저장하는 데 예약되었기 때문에 발생합니다. 이 열을 상속 클래스 저장에 사용하려는 의도가 없다면 이름을 바꾸거나 Integration.inheritance_column을 재정의하여 해당 정보를 위해 다른 열을 사용하세요.)

모든 통합은 귀하가 가진 모든 프로젝트에 대해 자동으로 생성됩니다. 이 오류를 피하려면, 데이터베이스에서 GithubService로 설정된 모든 기록을 제거해야 합니다.

Linux 패키지 (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에서는 환경 범위가 완전히 무시되므로, 이 기능을 사용하고 있다면 구성에 몇 가지 필요한 조정을 해야 할 수 있습니다.

특히, 구성 변수가 같은 키를 공유하지만 프로젝트에서 다른 범위를 가지는 경우 이러한 경우가 해당됩니다. 이 경우, 특정 환경에 대해 예상하지 못한 변수를 accidentally 얻을 수 있습니다. 이 경우 올바른 변수가 있는지 확인하세요.

데이터는 전환 중에 완전히 보존되므로, 이를 그대로 두면 항상 EE로 업그레이드하여 동작을 복원할 수 있습니다.

CE로 다운그레이드

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

모든 종속성이 최신 상태인지 확인하기 위해 올바른 업데이트 가이드를 따르세요.

Linux 패키지 설치

Linux 패키지 설치를 다운그레이드하려면, 현재 설치된 패키지 위에 Community Edition 패키지를 설치할 수 있습니다.

수동으로 다음 방법 중 하나를 사용하여 할 수 있습니다:

Self-compiled Installations

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

  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