11

我正在尝试将旧服务器的 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

我尝试寻找解决方案。但在所有文件中都说备份已经迁移到以前的版本。但它们都没有描述如何迁移备份。任何与此相关的解决方案都值得赞赏!

4

3 回答 3

2

此错误消息由以下人员产生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-stable 到 5-3-stable 升级,一切顺利。

于 2014-03-21T12:01:45.943 回答
0

根据关于备份和恢复 GitLab的 Gitlab 官方文档:

您只能将备份恢复到与创建它的 GitLab 完全相同的版本和类型 (CE/EE) 。将存储库从一台服务器迁移到另一台服务器的最佳方法是通过备份还原。

因此,首先在 OLD 服务器上更新您的 gitlab(即 6.5.1-0 -> 6.6.5 ),然后按照官方文档进行操作即可。

于 2018-04-10T06:51:55.990 回答
0

根据错误消息,备份存档是由(gitlab-6.5.1-0)创建的,无法使用(gitlab 6.6.5-omnibus)恢复。

对于简单的解决方案,我建议gitlab-6.5.1-omnibus先安装并恢复您的备份存档。然后,通过linux包系统进行升级。sudo gitlab-rake db:migrate如果遇到与数据库相关的任何问题,请运行

于 2016-11-28T07:31:13.120 回答