GitLab:备份rake任务是原子的吗?

时间:2013-04-05 04:05:04

标签: gitlab

如果我使用gitlab:backup:create rake任务进行GitLab备份,就像有人推送到存储库一样,备份过程会受到影响吗?

在进行备份之前是否需要关闭GitLab?

1 个答案:

答案 0 :(得分:4)

任务gitlab/backup.rake本身看起来不是原子的 它叫:

  Rake::Task["gitlab:backup:db:create"].invoke
  Rake::Task["gitlab:backup:repo:create"].invoke

That uses gem activerecord

    puts "Dumping database tables ... ".blue
    ActiveRecord::Base.connection.tables.each do |tbl|
    ...

与使用ActiveRecord的其他操作(参见this question)一样,它似乎不是全局原子操作。


几小时前,GitLab的主要开发人员randx (Dmitriy Zaporozhets)刚刚重构了数据库的转储:

因此,转储数据库的部分现在更具原子性;)
但备份本身,包括其他步骤,包括备份裸存储库,并不是原子的。