EEからCEへの格下げ

Enterprise Edition(EE) を Community Edition(CE)にダウングレードする場合は、事前にいくつかの手順を踏む必要があります:

  • Linux パッケージのインストールの場合、これらの手順は現在の EE パッケージの上に CE パッケージをインストールする前に行います。
  • セルフ・コンパイル・インストールの場合、これらの手順は、リモートを変更して最新のCEコードを取得する前に行います。

エンタープライズ専用機能の無効化

最初に行うことは、以下の機能を無効にすることです。

認証メカニズム

Kerberos と Atlassian Crowd は Enterprise Edition でのみ利用可能です。ダウングレードする前にこれらのメカニズムを無効にしてください。ユーザーに代替の認証方法を提供するようにしてください。

データベースからサービスインテグレーションエントリを削除

GitHubインテグレーションはEnterprise Editionのコードベースでしか利用できないため、Community Editionにダウングレードすると以下のエラーが表示されます:

Completed 500 Internal Server Error in 497ms (ActiveRecord: 32.2ms)

ActionView::Template::Error (The single-table inheritance mechanism failed to locate the subclass: 'GithubService'. This
error is raised because the column 'type' is reserved for storing the class in case of inheritance. Please rename this
column if you didn't intend it to be used for storing the inheritance class or overwrite Integration.inheritance_column to
use another column for that information.)

すべてのインテグレーションは、プロジェクトごとに自動的に作成されます。このエラーを回避するには、データベースからタイプをGithubService に設定したレコードをすべて削除する必要があります。

Linux package (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では、環境スコープは完全に無視されます。そのため、この機能を使う場合は設定の調整が必要になるかもしれません。設定変数が同じキーを共有していて、プロジェクト内で異なるスコープを持っている場合は特にそうです。このような場合、特定の環境で想定していない変数を誤って取得してしまう可能性があります。この場合、変数が正しいことを確認してください。

移行中のデータは完全に保存されるので、そのままにしておけば、いつでもEEにアップグレードして動作を元に戻すことができます。

CEへのダウングレード

上記の手順を実行したら、GitLab を Community Edition にダウングレードする準備ができました。

すべての依存関係が最新であることを確認するために、正しいアップデートガイドに従うことを忘れないでください。

Linux パッケージのインストール

Linux パッケージをダウングレードするには、現在インストールされているパッケージの上に Community Edition パッケージをインストールします。これは手動で行うことができます:

セルフコンパイルによるインストール

セルフコンパイルしたインストールをダウングレードするには、以下の手順に従います:

  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