# From 2.6 to 3.0

## 1. Stop server & resque

    sudo service gitlab stop

## 2. Update code & db


```bash
# Get latest code
git fetch origin
git checkout v3.0.3


# Install libs
sudo -u gitlab bundle install --without development test postgres

# update db
sudo -u gitlab bundle exec rake db:migrate RAILS_ENV=production

# !!! Config should be replaced with a new one. Check it after replace
cp config/gitlab.yml.example config/gitlab.yml

# update gitolite hooks

# GITOLITE v2:
sudo cp ./lib/hooks/post-receive /home/git/share/gitolite/hooks/common/post-receive
sudo chown git:git /home/git/share/gitolite/hooks/common/post-receive

# GITOLITE v3:
sudo cp ./lib/hooks/post-receive /home/git/.gitolite/hooks/common/post-receive
sudo chown git:git /home/git/.gitolite/hooks/common/post-receive

# set valid path to hooks in gitlab.yml in git_host section
# like this
git_host:
  # gitolite 2
  hooks_path: /home/git/share/gitolite/hooks
  # gitolite 3
  hooks_path: /home/git/.gitolite/hooks/


# Make some changes to gitolite config
# For more information visit https://github.com/gitlabhq/gitlabhq/pull/1719

# gitolite v2
sudo -u git -H sed -i 's/\(GL_GITCONFIG_KEYS\s*=>*\s*\).\{2\}/\\1"\.\*"/g' /home/git/.gitolite.rc

# gitlite v3
sudo -u git -H sed -i "s/\(GIT_CONFIG_KEYS\s*=>*\s*\).\{2\}/\\1'\.\*'/g" /home/git/.gitolite.rc


# Check app status
sudo -u gitlab bundle exec rake gitlab:app:status RAILS_ENV=production

```

## 3. Start all

    sudo service gitlab start
