CE에서 EE로 전환 문제 해결
Linux 패키지 설치를 GitLab Community Edition에서 Enterprise Edition으로 전환할 때 다음과 같은 문제가 발생할 수 있습니다. RPM을 사용하는 경우 다음과 유사한 오류가 발생할 수 있습니다:
Linux 패키지 설치를 GitLab Community Edition에서 Enterprise Edition으로 전환할 때 다음과 같은 문제가 발생할 수 있습니다.
RPM '패키지가 이미 설치되어 있음' 오류#
RPM을 사용하는 경우 다음과 유사한 오류가 발생할 수 있습니다:
package gitlab-7.5.2_omnibus.5.2.1.ci-1.el7.x86_64 (which is newer than gitlab-7.5.2_ee.omnibus.5.2.1.ci-1.el7.x86_64) is already installed
--oldpackage 옵션으로 이 버전 확인을 재정의할 수 있습니다:
sudo rpm -Uvh --oldpackage gitlab-7.5.2_ee.omnibus.5.2.1.ci-1.el7.x86_64.rpm
설치된 패키지에 의해 대체된 패키지#
Community Edition(CE)과 Enterprise Edition(EE) 패키지는 서로 대체하는 것으로 표시되어 있어 동시에 둘 다 설치되지 않습니다.
로컬 RPM 파일을 사용하여 CE에서 EE로 또는 그 반대로 전환하는 경우 yum 대신 rpm을 사용하여 패키지를 설치합니다. yum을 사용하려고 하면 다음과 같은 오류가 발생할 수 있습니다:
Cannot install package gitlab-ee-11.8.3-ee.0.el6.x86_64. It is obsoleted by installed package gitlab-ce-11.8.3-ce.0.el6.x86_64
이 문제를 방지하려면 다음 중 하나를 수행합니다:
- 다운로드한 패키지로 업그레이드 섹션에서 제공하는 동일한 지침을 사용합니다.
- 명령에 제공된 옵션에
--setopt=obsoletes=0을 추가하여 yum에서 이 확인을 일시적으로 비활성화합니다.
프로젝트 저장소 설정 접근 시 500 오류#
이 오류는 GitLab을 Community Edition(CE)에서 Enterprise Edition(EE)으로 변환한 후 다시 CE로, 그리고 다시 EE로 되돌릴 때 발생합니다.
프로젝트의 저장소 설정을 볼 때 로그에서 다음 오류를 볼 수 있습니다:
Processing by Projects::Settings::RepositoryController#show as HTML
Parameters: {"namespace_id"=>"<namespace_id>", "project_id"=>"<project_id>"}
Completed 500 Internal Server Error in 62ms (ActiveRecord: 4.7ms | Elasticsearch: 0.0ms | Allocations: 14583)
NoMethodError (undefined method `commit_message_negative_regex' for #
Did you mean? commit_message_regex_change):
이 오류는 EE 기능이 처음 EE로 이동할 때 CE 인스턴스에 추가되어 발생합니다. 인스턴스가 CE로 다시 이동한 후 EE로 다시 업그레이드되면 push_rules 테이블이 이미 데이터베이스에 존재합니다. 따라서 마이그레이션이 commit_message_regex_change 열을 추가할 수 없습니다.
이로 인해 EE 테이블의 백포트 마이그레이션이 올바르게 작동하지 않습니다. 백포트 마이그레이션은 CE를 실행할 때 데이터베이스의 특정 테이블이 존재하지 않는다고 가정합니다.
이 문제를 해결하려면:
-
데이터베이스 콘솔을 시작합니다:
sudo gitlab-rails dbconsole --database main -
누락된
commit_message_negative_regex열을 수동으로 추가합니다:ALTER TABLE push_rules ADD COLUMN commit_message_negative_regex VARCHAR; # psql 종료 \q -
GitLab을 재시작합니다:
sudo gitlab-ctl restart
