Commit 75f274b7505935cc5fd0b609a83afb1c8aaba79b

Authored by Jacob Vosmaer
1 parent 0a963ee1

Use Gitlab::VERSION to version backups

Previous to this commit, backups were tied to the git revision (SHA1) of
the app at the time the backup:create command was invoked. If the SHA1
at the time of restore was different, the script would refuse to restore
the backup.  This commit loosens this tie so that the backup script only
complains if the value of the Gitlab::VERSION constant is different
between the time of backup and the time of restore.
Showing 1 changed file with 10 additions and 16 deletions   Show diff stats
lib/backup/manager.rb
@@ -7,7 +7,7 @@ module Backup @@ -7,7 +7,7 @@ module Backup
7 s = {} 7 s = {}
8 s[:db_version] = "#{ActiveRecord::Migrator.current_version}" 8 s[:db_version] = "#{ActiveRecord::Migrator.current_version}"
9 s[:backup_created_at] = Time.now 9 s[:backup_created_at] = Time.now
10 - s[:gitlab_version] = %x{git rev-parse HEAD}.gsub(/\n/,"") 10 + s[:gitlab_version] = Gitlab::VERSION
11 s[:tar_version] = %x{tar --version | head -1}.gsub(/\n/,"") 11 s[:tar_version] = %x{tar --version | head -1}.gsub(/\n/,"")
12 12
13 Dir.chdir(Gitlab.config.backup.path) 13 Dir.chdir(Gitlab.config.backup.path)
@@ -87,21 +87,15 @@ module Backup @@ -87,21 +87,15 @@ module Backup
87 settings = YAML.load_file("backup_information.yml") 87 settings = YAML.load_file("backup_information.yml")
88 ENV["VERSION"] = "#{settings[:db_version]}" if settings[:db_version].to_i > 0 88 ENV["VERSION"] = "#{settings[:db_version]}" if settings[:db_version].to_i > 0
89 89
90 - # backups directory is not always sub of Rails root and able to execute the git rev-parse below  
91 - begin  
92 - Dir.chdir(Rails.root)  
93 -  
94 - # restoring mismatching backups can lead to unexpected problems  
95 - if settings[:gitlab_version] != %x{git rev-parse HEAD}.gsub(/\n/, "")  
96 - puts "GitLab version mismatch:".red  
97 - puts " Your current HEAD differs from the HEAD in the backup!".red  
98 - puts " Please switch to the following revision and try again:".red  
99 - puts " revision: #{settings[:gitlab_version]}".red  
100 - exit 1  
101 - end  
102 - ensure  
103 - # chdir back to original intended dir  
104 - Dir.chdir(Gitlab.config.backup.path) 90 + # restoring mismatching backups can lead to unexpected problems
  91 + if settings[:gitlab_version] != Gitlab::VERSION
  92 + puts "GitLab version mismatch:".red
  93 + puts " Your current GitLab version (#{Gitlab::VERSION}) differs from the GitLab version in the backup!".red
  94 + puts " Please switch to the following version and try again:".red
  95 + puts " version: #{settings[:gitlab_version]}".red
  96 + puts
  97 + puts "Hint: git checkout v#{settings[:gitlab_version]}"
  98 + exit 1
105 end 99 end
106 end 100 end
107 end 101 end