9

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

因此,我怀疑 Wiki 未包含在备份过程中,因此我打开了一个 VM 并尝试恢复备份文件。成功操作后,我去了项目的 Wiki 部分,它是空的。

我正在阅读一些资源,他们说存储库不应该为空以包含 Wiki,但我们的存储库充满了代码、提交、分支、问题等。我遵循了Omnibus安装的备份说明,因为这就是我们有。

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

如您所见,我没有包含任何SKIP环境变量,因此不应跳过任何内容。我错过了什么吗?我正确地遵循了指示。我需要系统的完整备份。

4

1 回答 1

6

链接@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?它会返回true,这就是备份过程跳过 Wiki 的原因。运行后wiki.repository.expire_all_method_caches你应该很高兴(我试过这个,我们的 Wiki 现在正在备份)。如果您想确认一切看起来都不错,只需wiki.repository.empty?再次运行它,这次它应该会返回false

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


更新(2017 年 8 月 22 日)

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

于 2017-06-05T14:50:56.647 回答