GitLab 备份不包括 wiki

GitLab backup doesn't include wiki

我们在服务器上安装了 GitLab CE 9.1.2,备份计划在周一至周五每个 8:00 下午 运行 进行。到目前为止一切都很好,但昨天我们开始使用 Wiki。我仔细检查了备份文件,不知何故它与前一天的备份大小完全相同(除了创建 Wiki 页面外,系统中什么也没做)。

因此我怀疑 Wiki 没有包含在备份过程中,所以我打开了一个虚拟机并尝试恢复备份文件。运行成功后我转到项目的维基部分,里面是空的

我正在阅读一些资源,他们说要包含 Wiki,回购不应该是空的,但我们的回购充满了代码、提交、分支、问题等。我按照 Omnibus 安装因为我们有。

0 20 * * 1-5 /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1

如您所见,我没有包含任何 SKIP 环境变量,因此它不应跳过任何内容。我错过了什么吗?我正确地按照说明进行了操作。我需要系统的完整备份。

来自 link @fedorqui 假设这是一个问题,当您创建 Wiki 时缓存没有被清除,因此备份过程将 Wiki 视为空的,因此被跳过。

要解决这个问题,我们似乎必须自己手动刷新缓存。

sudo gitlab-rails console
p = Project.find_by_full_path 'namespace_path/project_path'
wiki = ProjectWiki.new p
wiki.repository.empty?
wiki.repository.expire_all_method_caches
wiki.repository.empty?

第一次 运行 wiki.repository.empty? 它将 return true 这就是备份过程跳过 Wiki 的原因。在 运行ning wiki.repository.expire_all_method_caches 之后你应该可以开始了(我试过了,我们的 Wiki 现在正在备份)。如果您想确认一切看起来都不错,只需再次 运行 wiki.repository.empty?,这次应该 return false

截至 2017 年 6 月 5 日,该错误似乎尚未修复。


更新(2017 年 8 月 22 日)

GitLab CE 9.5.0 已发布 (changelog),其中修复了此问题。如果您不想手动使缓存过期,我建议您至少将 GitLab 安装升级到 v9.5.0,这样应该没问题。