Как перенести резервные копии gitlab на новый сервер с последней версией gitlab

Я пытаюсь перенести мои резервные копии gitlab для моего старого сервера на новый сервер. мой старый сервер имеет gitlab (gitlab-6.5.1-0), а мой новый сервер имеет версию gitlab (gitlab 6.6.5-omnibus). я сделал резервную копию со своего старого сервера, используя следующую команду

bundle exec rake gitlab:backup:create RAILS_ENV=production

и когда я пытаюсь восстановить эту резервную копию на новом сервере с помощью этой команды

gitlab-rake gitlab:backup:restore BACKUP=1395394855

Я получаю следующий вывод

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

Я пытался найти решение. но во всех документах говорится, что резервная копия уже перенесена в предыдущую версию. но ни один из них не описывает, как переносить резервные копии. Любое решение в этом отношении приветствуется!

3 ответа

Это сообщение об ошибке создается 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

Кажется, для принудительного создания резервной копии, как описано в этом комментарии:

Я столкнулся с той же проблемой при восстановлении резервной копии на новый сервер.

backup.rake проверяет номер коммита GITLAB во время создания резервной копии и при восстановлении того же имени ветви из последней проверки.

Мне пришлось:

  • удалять 5-2-stable а также
  • проверить снова 5-2-stable с тем же хэшем (git checkout -b 5-2-stable COMMIT-HASH),
  • запустил все задачи, так как установка свежей 5-2-stable выпустить с тем же config/gitlab.yml, config/database.yml,
  • Тогда я скопировал backup.tar файл в дефолт /home/git/gitlab/tmp/backups и побежал restore rake задача.

Работало без проблем. Затем я следовал с 5-2-стабильного до 5-3-стабильного обновления, и все прошло хорошо.

Согласно сообщению об ошибке, архив резервных копий создается (gitlab-6.5.1-0) и не может быть восстановлен с помощью (gitlab 6.6.5-omnibus).

Для простого решения я бы рекомендовал установить gitlab-6.5.1-omnibus и восстановил ваш резервный архив первым. Затем выполните обновление через систему пакетов linux. Бежать sudo gitlab-rake db:migrate если вы столкнулись с какой-либо проблемой, связанной с базами данных

Согласно официальной документации Gitlab по резервному копированию и восстановлению GitLab:

Вы можете восстановить только резервную копию точно такой же версии и типа (CE/EE) GitLab, на которой она была создана. Лучший способ перенести ваши репозитории с одного сервера на другой - это восстановление из резервной копии.

Итак, сначала обновите ваш gitlab на OLD сервере (то есть 6.5.1-0 -> 6.6.5), а затем следуйте официальной документации.

Другие вопросы по тегам