Support #505
Updating GitLab To The Latest Version
Description
This is a brief guide for upgrading GitLab 7.4 to the latest current version, 7.6; however the upgrade process is generic enough that the process should work in future versions.
Backup¶
- Its good to back everything up, in case the upgrade fails:
cd /home/git/gitlab sudo -u git -H bundle exec rake gitlab:backup:create RAILS_ENV=production
Upgrade GitLab¶
- Stop the GitLab server:
sudo service gitlab stop
- Get latest GitLab code:
cd /home/git/gitlab sudo -u git -H git fetch --all
- For GitLab Community Edition:
sudo -u git -H git checkout 7-6-stable
- For GitLab Community Edition:
- Update gitlab-shell:
cd /home/git/gitlab-shell sudo -u git -H git fetch sudo -u git -H git checkout v2.4.0
Install new system dependencies¶
- The latest version of the 'rugged' gem requires pkg-config and cmake to build its native extensions:
sudo apt-get install pkg-config cmake
- The 'timfel-krb5-auth' gem requires libkrb5-dev
apt-get install libkrb5-dev
- NOTE: I am running my GitLab instance on FreeBSD, so replace libkrb5-dev with krb5:
pkg install krb5
- NOTE: I am running my GitLab instance on FreeBSD, so replace libkrb5-dev with krb5:
- Install libs, migrations, etc.:
cd /home/git/gitlab
- For MySQL installations (note: the line below states '--without ... postgres')
sudo -u git -H bundle install --without development test postgres --deployment
- For PostgreSQL installations (note: the line below states '--without ... mysql')
sudo -u git -H bundle install --without development test mysql --deployment
- Run database migrations
sudo -u git -H bundle exec rake db:migrate RAILS_ENV=production
- Clean up assets and cache
sudo -u git -H bundle exec rake assets:clean assets:precompile cache:clear RAILS_ENV=production
- Update init.d script
sudo cp lib/support/init.d/gitlab /etc/init.d/gitlab
- For MySQL installations (note: the line below states '--without ... postgres')
Update config files¶
New configuration options for gitlab.yml
- There are new configuration options available for gitlab.yml. View them with the command below and apply them to your current gitlab.yml:
git diff 7-4-stable:config/gitlab.yml.example 7-6-stable:config/gitlab.yml.example
Restore GitLab service¶
- Start application
sudo service gitlab start sudo service nginx restart
Check application status¶
- Check if GitLab and its environment are configured correctly:
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:
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
If all items are green, then congratulations upgrade is complete!
Update OmniAuth configuration¶
When using Google omniauth login, changes of the Google account required. Ensure that Contacts API and the Google+ API are enabled in the Google Developers Console. More details can be found at the integration documentation.
Things went south? Revert to previous version (7.4)¶
- Revert the code to the previous version
Follow the upgrade guide from 7.3 to 7.4, except for the database migration (The backup is already migrated to the previous version) - Restore from the backup:
cd /home/git/gitlab sudo -u git -H bundle exec rake gitlab:backup:restore RAILS_ENV=production
Resources¶
Related issues
Updated by Daniel Curtis about 10 years ago
- Copied from Support #452: Updating GitLab 7.1 to 7.2 added
Updated by Daniel Curtis almost 10 years ago
- Status changed from Resolved to Closed
- % Done changed from 0 to 100