如何将 gitlab 备份迁移到具有最新 gitlab 版本的新服务器
Posted
技术标签:
【中文标题】如何将 gitlab 备份迁移到具有最新 gitlab 版本的新服务器【英文标题】:How to migrate gitlab backups to new server which has latest gitlab version 【发布时间】:2014-04-28 18:18:31 【问题描述】:我正在尝试将旧服务器的 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
我尝试寻找解决方案。但在所有文档中,它都说备份已迁移到以前的版本。但它们都没有描述如何迁移备份。对此的任何解决方案都表示赞赏!
【问题讨论】:
【参考方案1】:这个错误信息是由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
和 使用相同的提交哈希 (git checkout -b 5-2-stable COMMIT-HASH
) 再次签出5-2-stable
, 以安装新的5-2-stable
版本和相同的config/gitlab.yml
、config/database.yml
运行所有任务。 然后我将backup.tar
文件复制到默认/home/git/gitlab/tmp/backups
并运行restore rake
任务。它没有任何问题。然后我跟着 5-2-stable 到 5-3-stable 升级,一切顺利。
【讨论】:
嗨,vonc。我以前的版本是使用 Bitnami 安装的。在这个版本中没有名为 /home/git 的目录所有数据都驻留在 /opt/gitlab.5.xx 目录中 @NaveenSubramani 那么我不确定。迁移过程可能无法开箱即用。那么,GitLab 支持是一个很好的案例。 github.com/gitlabhq/gitlabhq/issues?state=open【参考方案2】:根据错误信息,备份存档是由 (gitlab-6.5.1-0) 创建的,无法使用 (gitlab 6.6.5-omnibus) 恢复。
对于简单的解决方案,我建议先安装 gitlab-6.5.1-omnibus
并恢复您的备份存档。然后,通过linux包系统进行升级。如果遇到任何与数据库相关的问题,请运行sudo gitlab-rake db:migrate
【讨论】:
【参考方案3】:根据Backing up and restoring GitLab上的Gitlab官方文档:
您只能将备份恢复到与创建它的 GitLab 完全相同的版本和类型 (CE/EE)。将存储库从一台服务器迁移到另一台服务器的最佳方式是通过备份恢复。
所以,首先在旧服务器上更新您的 gitlab(即 6.5.1-0 -> 6.6.5 ),然后按照 official documentation 进行操作。
【讨论】:
以上是关于如何将 gitlab 备份迁移到具有最新 gitlab 版本的新服务器的主要内容,如果未能解决你的问题,请参考以下文章
gitlab 从古老的 bitnami 版本 迁移到官方最新版本