Omnibus upgrade from 13 to 14

Hello :wave: ,

i want to upgrade my self hosted gitlab and i’m willing to use this upgrade path : 13.12.9 β†’ 14.0.12 β†’ 14.1.12 β€”> 14.5.2

  1. is this upgrade path correct ?

  2. for every version upgrade i need to wait for migrations to finish ? something like this : 13.12.9 β†’ 14.0.12β€”> wait for migrations to finish β†’ 14.1.12 ----> wait for migrations to finish β€”> 14.5.2

  3. is it healthy to let users use gitlab while the migration is running or do i need to block access to users ?

  4. how can we estimate time of the migration ?

  5. how do i see the remaining migrations via command line ? i use this command
    gitlab-rails runner -e production 'puts Gitlab::BackgroundMigration.remaining' but i show me 0 while in β€œadmin/background_migrations” it shows there is remaining migrations

Regards :slight_smile:


  1. According to the docs, the path looks fine: Upgrading GitLab | GitLab
  2. Yes you must wait for background migrations to finish, otherwise you will break your installation and the database. Which in most cases will mean restoring from a backup to get your server running again.
  3. No, because if during upgrade services are restarted then you can have inconsistencies especially if they are trying to push commits or edit in web interface.
  4. Depends on various factors, internet connection speed to download approx 1gb package, then how overloaded your server is in cpu/ram specs to whether it will finish quickly or not, as well as the mount of migrations required. Assuming all goes well in terms of package download, server specs, approx 5 - 10 minutes per package upgrade. Since you have about 3 upgrades to do, then look for about 30 minutes. Sometimes background migrations take longer and you will just have to wait until it’s finished before continuing the next upgrade.
  5. The console command should report the same as the web interface. If you have in your web interface under admin/background_migrations please show the screenshot since it’s difficult for us to tell without seeing it.

thanks alot for your answer @iwalker .

in the image below you can see that the command line request return 0 , while in web interface i’m getting a list of migrations ( i refreshed the page same result )

Have you tried refreshing the page with F5 or CTRL-F5?

The next things to try would be:

gitlab-ctl restart
systemctl restart gitlab-runsvdir

and recheck the web interface again. Failing that, you can also try clearing the redis cache:

sudo gitlab-rake cache:clear

if running that as root, you don’t need the sudo part.

1 Like

i tried refreshing the page , restart and clearing the cache but it seems like the web result is more reliable , the commandline result is always 0 while in the web interface i can see that background migration are decreasing passing from pending , running to finished

1 Like