我正在尝试将旧服务器的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
我尝试寻找解决方案。但在所有文档中,它表示备份已迁移到以前的版本。但它们都没有描述如何迁移备份。任何有关此问题的解决方案都是赞赏的!
答案 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-stable
,config/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进行操作。