2019-02-11 11:08:25 -05:00
---
2022-05-29 20:08:35 -04:00
stage: Systems
2021-01-11 10:10:32 -05:00
group: Distribution
2020-11-26 01:09:20 -05:00
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-02-11 11:08:25 -05:00
comments: false
---
2021-04-19 14:09:09 -04:00
# Upgrading from Community Edition to Enterprise Edition from source **(FREE SELF)**
2019-02-11 11:08:25 -05:00
2020-12-04 16:09:29 -05:00
NOTE:
2020-07-16 02:09:33 -04:00
In the past we used separate documents for upgrading from
2019-02-11 11:08:25 -05:00
Community Edition to Enterprise Edition. These documents can be found in the
2022-08-07 23:09:21 -04:00
[`doc/update` directory of Enterprise Edition's source code ](https://gitlab.com/gitlab-org/gitlab/-/tree/11-8-stable-ee/doc/update ).
2019-02-11 11:08:25 -05:00
2019-05-05 08:17:20 -04:00
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-02-11 11:08:25 -05:00
## 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
2022-07-06 05:08:10 -04:00
questions contact us at `support@gitlab.com` .
2019-02-11 11:08:25 -05:00
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-06-30 23:36:23 -04:00
- Enterprise Edition: `11-8-stable-ee`
- Community Edition: `11-8-stable`
2019-02-11 11:08:25 -05:00
### 0. Backup
Make a backup just in case something goes wrong:
2020-01-30 10:09:15 -05:00
```shell
2019-02-11 11:08:25 -05:00
cd /home/git/gitlab
sudo -u git -H bundle exec rake gitlab:backup:create RAILS_ENV=production
```
2022-06-20 20:08:43 -04:00
For installations using MySQL, this may require granting `LOCK TABLES`
2019-02-11 11:08:25 -05:00
privileges to the GitLab user on the database version.
### 1. Stop server
2020-01-30 10:09:15 -05:00
```shell
2019-02-11 11:08:25 -05:00
sudo service gitlab stop
```
### 2. Get the EE code
2020-01-30 10:09:15 -05:00
```shell
2019-02-11 11:08:25 -05:00
cd /home/git/gitlab
2019-09-18 10:02:45 -04:00
sudo -u git -H git remote add -f ee https://gitlab.com/gitlab-org/gitlab.git
2019-02-11 11:08:25 -05:00
sudo -u git -H git checkout EE_BRANCH
```
2020-06-11 23:08:22 -04:00
### 3. Install libraries, migrations, etc
2019-02-11 11:08:25 -05:00
2020-01-30 10:09:15 -05:00
```shell
2019-02-11 11:08:25 -05:00
cd /home/git/gitlab
2021-03-19 05:08:53 -04:00
# 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-03-11 01:09:43 -05:00
sudo -u git -H bundle install
2019-02-11 11:08:25 -05:00
2019-12-13 07:07:41 -05:00
# Optional: clean up old gems
sudo -u git -H bundle clean
2019-02-11 11:08:25 -05:00
# Run database migrations
sudo -u git -H bundle exec rake db:migrate RAILS_ENV=production
2019-12-13 07:07:41 -05:00
# 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-02-11 11:08:25 -05:00
```
2021-01-29 07:09:29 -05:00
### 4. Install `gitlab-elasticsearch-indexer` **(PREMIUM SELF)**
2019-02-11 11:08:25 -05:00
2022-07-06 05:08:10 -04:00
Follow the [install instruction ](../integration/advanced_search/elasticsearch.md#install-elasticsearch ).
2019-02-11 11:08:25 -05:00
### 5. Start application
2020-01-30 10:09:15 -05:00
```shell
2019-02-11 11:08:25 -05:00
sudo service gitlab start
sudo service nginx restart
```
### 6. Check application status
Check if GitLab and its environment are configured correctly:
2020-01-30 10:09:15 -05:00
```shell
2019-02-11 11:08:25 -05:00
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-01-30 10:09:15 -05:00
```shell
2019-02-11 11:08:25 -05:00
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-01-30 10:09:15 -05:00
```shell
2019-02-11 11:08:25 -05:00
cd /home/git/gitlab
sudo -u git -H git checkout CE_BRANCH
```
### 2. Restore from the backup
2020-01-30 10:09:15 -05:00
```shell
2019-02-11 11:08:25 -05:00
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
2020-12-07 13:10:36 -05:00
necessary, they are listed per version below.
2019-02-11 11:08:25 -05:00
<!--
Example:
### 11.8.0
Additional instructions here.
-->