GitLab备份不包含wiki

时间:2017-06-02 17:04:33

标签: cron backup gitlab gitlab-omnibus gitlab-ce

我们在服务器上安装了GitLab CE 9.1.2,计划每隔8:00 PM Mon-Fri运行一次备份。到目前为止一切都很好,但昨天我们开始使用Wiki。我仔细检查了备份文件,并且它与前一天的备份大小完全相同(除了创建Wiki页面之外,系统中没有进行任何操作)。

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

我正在阅读一些资源,他们说回购不应该是空的,因为我们的回购中包含了代码,提交,分支机构,问题等等。我按照的备份说明进行操作。 Omnibus 安装,因为这就是我们所拥有的。

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

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

1 个答案:

答案 0 :(得分:5)

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?时,它将返回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并且您应该没问题。