CEからEEへの変換のトラブルシューティング
LinuxパッケージのインストールをGitLab Community EditionからGitLab 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 #<PushRule:0x00007fbddf4229b8>
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; # Exit psql \qGitLabを再起動します:
sudo gitlab-ctl restart