doc/update/convert_to_ee/revert.md
You can revert your Enterprise Edition (EE) instance back to Community Edition (CE), but must first:
Kerberos is only available on EE instances. You must:
These integrations are only available in the EE codebase:
If you downgrade to CE, you might get something like the following error:
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::GithubIntegrations::GitGuardianIntegrations::GoogleCloudPlatform::ArtifactRegistryIntegrations::GoogleCloudPlatform::WorkloadIdentityFederationAll 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.
{{< tabs >}}
{{< tab title="Linux package (Omnibus)" >}}
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"
{{< /tab >}}
{{< tab title="Self-compiled (source)" >}}
bundle exec rails runner "Integration.where(type_new: ['Integrations::Github']).delete_all" production
bundle exec rails runner "Integration.where(type_new: ['Integrations::GitGuardian']).delete_all" production
bundle exec rails runner "Integration.where(type_new: ['Integrations::GoogleCloudPlatform::ArtifactRegistry']).delete_all" production
bundle exec rails runner "Integration.where(type_new: ['Integrations::GoogleCloudPlatform::WorkloadIdentityFederation']).delete_all" production
{{< /tab >}}
{{< /tabs >}}
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.
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.
{{< tabs >}}
{{< tab title="Linux package (Omnibus)" >}}
Install the Community Edition package by following the installation instructions for your distribution.
{{< /tab >}}
{{< tab title="Self-compiled (source)" >}}
Replace the current Git remote of your GitLab installation with the CE Git remote.
Fetch the latest changes and check out the latest stable branch. For example:
git remote set-url origin [email protected]:gitlab-org/gitlab-foss.git
git fetch --all
git checkout 17-8-stable
{{< /tab >}}
{{< /tabs >}}
This section contains possible solutions for problems you might encounter.
Cookbook gitlab-ee not foundYou might encounter the Cookbook gitlab-ee not found error when installing the Linux package for GitLab CE on a GitLab EE instance. To resolve this issue:
Remove the gitlab-ee cookbook:
sudo rm -rf /opt/gitlab/embedded/cookbooks/cache/cookbooks/gitlab-ee
Re-install GitLab CE.
Check that all services are up:
sudo gitlab-ctl status
If not, restart GitLab:
sudo gitlab-ctl restart