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

CEからEEへのトラブルシューティング

GitLab Community EditionのLinuxパッケージインストールを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へ、またはその逆に切り替える場合は、rpmではなくyumを使用してパッケージをインストールしてください。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に移行した際に、CEインスタンスにEE機能が追加されたことが原因です。インスタンスが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