Revert from Enterprise Edition to Community Edition

You can revert your Enterprise Edition (EE) instance back to Community Edition (CE), but must first:

  1. Disable EE-only authentication mechanisms.
  2. Remove EE-only integrations from the database.
  3. Adjust configuration that uses environment scopes.

Turn off EE-only authentication mechanisms

Kerberos is only available on EE instances. You must:

  • Turn off these mechanisms before reverting.
  • Provide a different authentication method to your users.

Remove EE-only integrations from the database

These integrations are only available in the EE codebase:

If you downgrade to CE, you might get something like the following error:

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

ActionView::Template::Error (The single-table inheritance mechanism failed to locate the subclass: 'Integrations::Github'. This
error is raised because the column 'type_new' 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.)

The subclass in the error message can be any of the following:

  • Integrations::Github
  • Integrations::GitGuardian
  • Integrations::GoogleCloudPlatform::ArtifactRegistry
  • Integrations::GoogleCloudPlatform::WorkloadIdentityFederation

All integrations are created automatically for every project you have. To avoid getting this error, you must remove all EE-only integration records from your database.

Shell Copy to clipboard
sudo gitlab-rails runner "Integration.where(type_new: ['Integrations::Github']).delete_all"
sudo gitlab-rails runner "Integration.where(type_new: ['Integrations::GitGuardian']).delete_all"
sudo gitlab-rails runner "Integration.where(type_new: ['Integrations::GoogleCloudPlatform::ArtifactRegistry']).delete_all"
sudo gitlab-rails runner "Integration.where(type_new: ['Integrations::GoogleCloudPlatform::WorkloadIdentityFederation']).delete_all"

Adjust configuration that uses environment scopes

If you use environment scopes, you might need to adjust your configuration, especially if configuration variables share the same key, but have different scopes. Environment scopes are completely ignored in CE.

With configuration variables that share a key but different scopes, you could accidentally get a variable that you’re not expecting for a particular environment. Make sure that you have the right variables in this case.

Your data is completely preserved in the transition, so you can change back to EE and restore the behavior.

Revert to CE

After performing the necessary steps, you can revert your GitLab instance to CE.

Follow the correct update guides to make sure all dependencies are up to date.

Install the CE package on top of EE by either: