如何将gitlab备份迁移到具有最新gitlab版本的新服务器

时间:2014-03-21 11:41:33

标签: git gitlab bitnami gitlab-ci

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

答案 0 :(得分: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

似乎强制增量备份,如described in this comment

  

将备份还原到新服务器时遇到了同样的问题。

     

backup.rake检查备份时的GITLAB提交编号,以及从最新签出恢复到相同分支名称的时间。

     

我必须:

     
      
  • 删除5-2-stable
  •   
  • 使用相同的提交哈希(5-2-stable),
  • 再次签出git checkout -b 5-2-stable COMMIT-HASH   
  • 将所有任务都安排为使用相同的5-2-stableconfig/gitlab.yml安装新的config/database.yml版本。
  •   
  • 然后我将backup.tar文件复制到默认/home/git/gitlab/tmp/backups并运行restore rake任务。
  •   
     

它没有任何问题。然后我按照5-2稳定到5-3稳定升级,一切顺利。

答案 1 :(得分:0)

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

对于简单的解决方案,我建议先安装https://github.com/highsource/maven-jaxb2-plugin-support/s/schemaDirectory并恢复备份存档。然后,通过linux包系统进行升级。如果遇到与数据库相关的任何问题,请运行gitlab-6.5.1-omnibus

答案 2 :(得分:0)

根据关于Backing up and restoring GitLab的Gitlab官方文档:

  

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

因此,首先在OLD服务器上更新你的gitlab(即6.5.1-0 - > 6.6.5),然后按official documentation进行操作。