正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

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

このイシューを回避するには、次のいずれかの方法を実行します:

プロジェクトリポジトリ設定へのアクセス時に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の実行時にデータベース内の特定のテーブルが存在しないことを前提としています。

このイシューを解決するには、次の手順に従います:

  1. データベースコンソールを起動します:

    sudo gitlab-rails dbconsole --database main
  2. 不足しているcommit_message_negative_regexカラムを手動で追加します:

    ALTER TABLE push_rules ADD COLUMN commit_message_negative_regex VARCHAR;
    
    # Exit psql
    \q
  3. GitLabを再起動します:

    sudo gitlab-ctl restart