2019-07-07 11:18:12 +05:30
---
2021-03-08 18:12:59 +05:30
stage: Enablement
group: Distribution
2021-02-22 17:27:13 +05:30
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
2019-07-07 11:18:12 +05:30
comments: false
---
2021-04-29 21:17:54 +05:30
# Upgrading from Community Edition to Enterprise Edition from source **(FREE SELF)**
2019-07-07 11:18:12 +05:30
2021-02-22 17:27:13 +05:30
NOTE:
2020-07-28 23:09:34 +05:30
In the past we used separate documents for upgrading from
2019-07-07 11:18:12 +05:30
Community Edition to Enterprise Edition. These documents can be found in the
[`doc/update` directory of Enterprise Edition's source
2021-09-04 01:27:46 +05:30
code](https://gitlab.com/gitlab-org/gitlab/-/tree/11-8-stable-ee/doc/update).
2019-07-07 11:18:12 +05:30
2019-07-31 22:56:46 +05:30
If you want to upgrade the version only, for example 11.8 to 11.9, *without* changing the
GitLab edition you are using (Community or Enterprise), see the
[Upgrading from source ](upgrading_from_source.md ) documentation.
2019-07-07 11:18:12 +05:30
## General upgrading steps
This guide assumes you have a correctly configured and tested installation of
GitLab Community Edition. If you run into any trouble or if you have any
2019-12-04 20:38:33 +05:30
questions please contact us at `support@gitlab.com` .
2019-07-07 11:18:12 +05:30
In all examples, replace `EE_BRANCH` with the Enterprise Edition branch for the
version you are using, and `CE_BRANCH` with the Community Edition branch.
Branch names use the format `major-minor-stable-ee` for Enterprise Edition, and
`major-minor-stable` for Community Edition. For example, for 11.8.0 you would
use the following branches:
2019-09-30 21:07:59 +05:30
- Enterprise Edition: `11-8-stable-ee`
- Community Edition: `11-8-stable`
2019-07-07 11:18:12 +05:30
### 0. Backup
Make a backup just in case something goes wrong:
2020-03-13 15:44:24 +05:30
```shell
2019-07-07 11:18:12 +05:30
cd /home/git/gitlab
sudo -u git -H bundle exec rake gitlab:backup:create RAILS_ENV=production
```
For installations using MySQL, this may require granting "LOCK TABLES"
privileges to the GitLab user on the database version.
### 1. Stop server
2020-03-13 15:44:24 +05:30
```shell
2019-07-07 11:18:12 +05:30
sudo service gitlab stop
```
### 2. Get the EE code
2020-03-13 15:44:24 +05:30
```shell
2019-07-07 11:18:12 +05:30
cd /home/git/gitlab
2019-12-04 20:38:33 +05:30
sudo -u git -H git remote add -f ee https://gitlab.com/gitlab-org/gitlab.git
2019-07-07 11:18:12 +05:30
sudo -u git -H git checkout EE_BRANCH
```
2020-06-23 00:09:42 +05:30
### 3. Install libraries, migrations, etc
2019-07-07 11:18:12 +05:30
2020-03-13 15:44:24 +05:30
```shell
2019-07-07 11:18:12 +05:30
cd /home/git/gitlab
2021-04-29 21:17:54 +05:30
# If you haven't done so during installation or a previous upgrade already
sudo -u git -H bundle config set --local deployment 'true'
sudo -u git -H bundle config set --local without 'development test mysql aws kerberos'
# Update gems
2021-04-17 20:07:23 +05:30
sudo -u git -H bundle install
2019-07-07 11:18:12 +05:30
2020-01-01 13:55:28 +05:30
# Optional: clean up old gems
sudo -u git -H bundle clean
2019-07-07 11:18:12 +05:30
# Run database migrations
sudo -u git -H bundle exec rake db:migrate RAILS_ENV=production
2020-01-01 13:55:28 +05:30
# Compile GetText PO files
sudo -u git -H bundle exec rake gettext:compile RAILS_ENV=production
# Update node dependencies and recompile assets
sudo -u git -H bundle exec rake yarn:install gitlab:assets:clean gitlab:assets:compile RAILS_ENV=production NODE_ENV=production NODE_OPTIONS="--max_old_space_size=4096"
# Clean up cache
sudo -u git -H bundle exec rake cache:clear RAILS_ENV=production
2019-07-07 11:18:12 +05:30
```
2021-03-11 19:13:27 +05:30
### 4. Install `gitlab-elasticsearch-indexer` **(PREMIUM SELF)**
2019-07-07 11:18:12 +05:30
2021-11-11 11:23:49 +05:30
Please follow the [install instruction ](../integration/elasticsearch.md#install-elasticsearch ).
2019-07-07 11:18:12 +05:30
### 5. Start application
2020-03-13 15:44:24 +05:30
```shell
2019-07-07 11:18:12 +05:30
sudo service gitlab start
sudo service nginx restart
```
### 6. Check application status
Check if GitLab and its environment are configured correctly:
2020-03-13 15:44:24 +05:30
```shell
2019-07-07 11:18:12 +05:30
sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production
```
To make sure you didn't miss anything run a more thorough check with:
2020-03-13 15:44:24 +05:30
```shell
2019-07-07 11:18:12 +05:30
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
```
If all items are green, then congratulations upgrade complete!
## Things went south? Revert to previous version (Community Edition)
### 1. Revert the code to the previous version
2020-03-13 15:44:24 +05:30
```shell
2019-07-07 11:18:12 +05:30
cd /home/git/gitlab
sudo -u git -H git checkout CE_BRANCH
```
### 2. Restore from the backup
2020-03-13 15:44:24 +05:30
```shell
2019-07-07 11:18:12 +05:30
cd /home/git/gitlab
sudo -u git -H bundle exec rake gitlab:backup:restore RAILS_ENV=production
```
## Version specific steps
Certain versions of GitLab may require you to perform additional steps when
upgrading from Community Edition to Enterprise Edition. Should such steps be
2021-02-22 17:27:13 +05:30
necessary, they are listed per version below.
2019-07-07 11:18:12 +05:30
<!--
Example:
### 11.8.0
Additional instructions here.
-->