How to migrate gitlab backups to new server which

2019-03-15 15:55发布

问题:

I am trying to migrate my gitlab backups for my old server to new server. my old server has gitlab (gitlab-6.5.1-0) and my new server has gitlab version (gitlab 6.6.5-omnibus). i taken backup from my old server using the following command

bundle exec rake gitlab:backup:create RAILS_ENV=production

and when i try to restore this backup in new server using this command

gitlab-rake gitlab:backup:restore BACKUP=1395394855

I am getting the following output

Unpacking backup ... done
GitLab version mismatch:
  Your current GitLab version (6.6.5) differs from the GitLab version in the backup!
  Please switch to the following version and try again:
  version: 6f6f1588ba5123f156ee3b0635a061745b71fcde

I tried searching for solution . but in all documents its says The backup is already migrated to the previous version. but none of them describes how to migrate backups . Any solution regarding this is Appreciated !

回答1:

This error message is produced by lib/backup/manager.rb#L87-L92:

  settings = YAML.load_file("backup_information.yml")
  ENV["VERSION"] = "#{settings[:db_version]}" if settings[:db_version].to_i > 0

  # restoring mismatching backups can lead to unexpected problems
  if settings[:gitlab_version] != Gitlab::VERSION
    puts "GitLab version mismatch:".red

It seems to force an incremental backup, as described in this comment:

I have faced the same issue when restoring the backup to a new server.

backup.rake checks GITLAB commit number at time of backup is taken and when you are restoring to the same branch name from latest check out.

I have to:

  • delete 5-2-stable and
  • check out again 5-2-stable with the same commit hash ( git checkout -b 5-2-stable COMMIT-HASH),
  • ran all tasks as installing a fresh 5-2-stable release with same config/gitlab.yml, config/database.yml.
  • Then I have copied backup.tar file into default /home/git/gitlab/tmp/backups and ran restore rake task.

It worked without any problem. Then I have followed 5-2-stable to 5-3-stable upgrade and it went all well.



回答2:

According to the error message, the backup archive is created by (gitlab-6.5.1-0) and can't be restored using (gitlab 6.6.5-omnibus).

For simple solution, I'd recommend installing gitlab-6.5.1-omnibus and restored your backup archive first. Then, do the upgrade through linux package system. Run sudo gitlab-rake db:migrate if you encountered any problem related to databases



回答3:

According to the Gitlab official documentation on Backing up and restoring GitLab:

You can only restore a backup to exactly the same version and type (CE/EE) of GitLab on which it was created. The best way to migrate your repositories from one server to another is through backup restore.

So, update your gitlab on OLD server first (i.e. 6.5.1-0 -> 6.6.5 ), then follow the official documentation will do.