Skip to content

Investigate if updating tracking DB is necessary on secondaries for GitLab upgrade

The documentation describes to run sudo gitlab-rake geo:db:migrate on each secondary after updating.

But AFAICS, omnibus does this automatically https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/files/gitlab-cookbooks/gitlab-ee/recipes/geo_database_migrations.rb#L31:

bash 'migrate gitlab-geo tracking database' do
  code <<-EOH
    set -e
    log_file="#{node['gitlab']['gitlab-rails']['log_directory']}/gitlab-geo-db-migrate-$(date +%Y-%m-%d-%H-%M-%S).log"
    umask 077
    /opt/gitlab/bin/gitlab-rake geo:db:migrate 2>& 1 | tee ${log_file}
    STATUS=${PIPESTATUS[0]}
    echo $STATUS > #{gitlab_geo_helper.db_migrate_status_file}
    exit $STATUS
  EOH

  notifies :run, 'execute[start geo-postgresql]', :before if omnibus_helper.should_notify?('geo-postgresql')
  dependent_services.each do |svc|
    notifies :restart, svc, :immediately
  end
  not_if { gitlab_geo_helper.migrated? }
  only_if { node['gitlab']['geo-secondary']['auto_migrate'] && node['gitlab']['geo-postgresql']['enable'] }
end

Proposal

Test this actually works and remove this step from the docs if so.

Edited by Toon Claes