2017-11-01 11:56:40 -04:00
---
comments: false
---
2014-04-24 18:48:22 -04:00
# Universal update guide for patch versions
2016-12-02 06:36:05 -05:00
## Select Version to Install
2019-09-18 10:02:45 -04:00
Make sure you view [this update guide ](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/update/patch_versions.md ) from the tag (version) of GitLab you would like to install.
2016-12-02 06:36:05 -05:00
In most cases this should be the highest numbered production tag (without rc in it).
You can select the tag in the version dropdown in the top left corner of GitLab (below the menu bar).
2013-10-28 07:23:09 -04:00
### 0. Backup
2020-04-21 11:21:10 -04:00
It's useful to make a backup just in case things go south. Depending on the installation method, backup commands vary. See the [backing up and restoring GitLab ](../raketasks/backup_restore.md ) documentation.
2013-10-28 07:23:09 -04:00
### 1. Stop server
2020-01-30 10:09:15 -05:00
```shell
2015-12-02 08:54:44 -05:00
sudo service gitlab stop
```
2013-10-28 07:23:09 -04:00
2013-12-06 05:21:33 -05:00
### 2. Get latest code for the stable branch
2013-10-28 07:23:09 -04:00
2015-12-02 08:54:44 -05:00
In the commands below, replace `LATEST_TAG` with the latest GitLab tag you want
to update to, for example `v8.0.3` . Use `git tag -l 'v*.[0-9]' --sort='v:refname'`
to see a list of all tags. Make sure to update patch versions only (check your
current version with `cat VERSION` ).
2020-01-30 10:09:15 -05:00
```shell
2013-10-28 07:23:09 -04:00
cd /home/git/gitlab
2016-12-23 03:53:08 -05:00
2014-02-24 07:04:05 -05:00
sudo -u git -H git fetch --all
2020-03-22 11:09:49 -04:00
sudo -u git -H git checkout -- Gemfile.lock db/structure.sql locale
2015-10-05 09:27:01 -04:00
sudo -u git -H git checkout LATEST_TAG -b LATEST_TAG
2013-10-28 07:23:09 -04:00
```
2019-08-22 04:50:31 -04:00
### 3. Install libs, migrations, etc
2013-10-28 07:23:09 -04:00
2020-01-30 10:09:15 -05:00
```shell
2013-10-28 07:23:09 -04:00
cd /home/git/gitlab
2016-05-13 12:39:32 -04:00
sudo -u git -H bundle install --without development test mysql --deployment
2013-10-28 07:23:09 -04:00
2016-03-07 09:39:12 -05:00
# Optional: clean up old gems
2016-02-14 04:31:28 -05:00
sudo -u git -H bundle clean
2016-03-07 09:39:12 -05:00
# Run database migrations
2013-10-28 07:23:09 -04:00
sudo -u git -H bundle exec rake db:migrate RAILS_ENV=production
2016-03-07 09:39:12 -05:00
2017-08-11 08:53:28 -04:00
# Compile GetText PO files
# Internationalization was added in `v9.2.0` so these commands are only
# required for versions equal or major to it.
2017-08-08 14:08:10 -04:00
sudo -u git -H bundle exec rake gettext:pack RAILS_ENV=production
sudo -u git -H bundle exec rake gettext:po_to_json RAILS_ENV=production
2016-03-07 09:39:12 -05:00
# Clean up assets and cache
2019-05-15 12:30:30 -04:00
sudo -u git -H bundle exec rake yarn:install gitlab:assets:clean gitlab:assets:compile cache:clear RAILS_ENV=production NODE_ENV=production NODE_OPTIONS="--max_old_space_size=4096"
2013-10-28 07:23:09 -04:00
```
2019-08-29 04:50:59 -04:00
### 4. Update GitLab Workhorse to the corresponding version
2016-12-23 03:53:08 -05:00
2020-01-30 10:09:15 -05:00
```shell
2016-12-23 03:53:08 -05:00
cd /home/git/gitlab
sudo -u git -H bundle exec rake "gitlab:workhorse:install[/home/git/gitlab-workhorse]" RAILS_ENV=production
```
2019-10-02 08:06:04 -04:00
### 5. Update Gitaly to the corresponding version
2017-09-11 09:27:51 -04:00
2020-01-30 10:09:15 -05:00
```shell
2017-09-11 09:27:51 -04:00
cd /home/git/gitlab
2018-10-17 16:45:20 -04:00
sudo -u git -H bundle exec rake "gitlab:gitaly:install[/home/git/gitaly,/home/git/repositories]" RAILS_ENV=production
2017-09-11 09:27:51 -04:00
```
2019-08-29 04:50:59 -04:00
### 6. Update GitLab Shell to the corresponding version
2016-12-23 03:53:08 -05:00
2020-01-30 10:09:15 -05:00
```shell
2016-12-23 03:53:08 -05:00
cd /home/git/gitlab-shell
sudo -u git -H git fetch --all --tags
2018-08-01 12:57:57 -04:00
sudo -u git -H git checkout v$(< /home/git/gitlab/GITLAB_SHELL_VERSION) -b v$(< /home/git/gitlab/GITLAB_SHELL_VERSION)
2019-10-04 08:06:14 -04:00
sudo -u git -H make build
2016-12-23 03:53:08 -05:00
```
2019-08-29 04:50:59 -04:00
### 7. Update GitLab Pages to the corresponding version (skip if not using pages)
2018-08-01 12:57:57 -04:00
2020-01-30 10:09:15 -05:00
```shell
2018-08-01 12:57:57 -04:00
cd /home/git/gitlab-pages
sudo -u git -H git fetch --all --tags
sudo -u git -H git checkout v$(< /home/git/gitlab/GITLAB_PAGES_VERSION)
sudo -u git -H make
```
2019-12-20 04:24:38 -05:00
### 8. Install/Update `gitlab-elasticsearch-indexer` **(STARTER ONLY)**
2019-05-05 08:17:20 -04:00
2020-02-25 22:09:07 -05:00
Please follow the [install instruction ](../integration/elasticsearch.md#installing-elasticsearch ).
2019-05-05 08:17:20 -04:00
### 9. Start application
2013-10-28 07:23:09 -04:00
2020-01-30 10:09:15 -05:00
```shell
2015-12-02 08:54:44 -05:00
sudo service gitlab start
sudo service nginx restart
```
2013-10-28 07:23:09 -04:00
2019-05-05 08:17:20 -04:00
### 10. Check application status
2013-10-28 07:23:09 -04:00
Check if GitLab and its environment are configured correctly:
2020-01-30 10:09:15 -05:00
```shell
2016-12-23 03:53:08 -05:00
cd /home/git/gitlab
2015-12-02 08:54:44 -05:00
sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production
```
2013-10-28 07:23:09 -04:00
To make sure you didn't miss anything run a more thorough check with:
2020-01-30 10:09:15 -05:00
```shell
2015-12-02 08:54:44 -05:00
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
```
2013-10-28 07:23:09 -04:00
If all items are green, then congratulations upgrade complete!