summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRiyad Preukschas <riyad@informatik.uni-bremen.de>2012-12-20 20:17:09 +0100
committerRiyad Preukschas <riyad@informatik.uni-bremen.de>2012-12-20 21:52:35 +0100
commitc9bf2bb288cffba2d4a30f1937ca88b9b92e64ed (patch)
tree1ce1ea9c57cc03e5369bf6d461305991db617be1
parent56f9a674a6f398abc2541b435808361b13b7e713 (diff)
downloadgitlab-ce-c9bf2bb288cffba2d4a30f1937ca88b9b92e64ed.tar.gz
Rename gitlab:app:backup_* to gitlab:backup:*
Rename gitlab:app:db_* to gitlab:backup:db:* Rename gitlab:app:repo_* to gitlab:backup:repo:* Rename *_dump to *_create
-rw-r--r--doc/raketasks/backup_restore.md4
-rw-r--r--lib/tasks/gitlab/backup.rake138
2 files changed, 73 insertions, 69 deletions
diff --git a/doc/raketasks/backup_restore.md b/doc/raketasks/backup_restore.md
index 575467b4371..bbfeeb716fa 100644
--- a/doc/raketasks/backup_restore.md
+++ b/doc/raketasks/backup_restore.md
@@ -4,7 +4,7 @@ Creates a backup archive of the database and all repositories. This archive will
The filename will be `[TIMESTAMP]_gitlab_backup.tar`. This timestamp can be used to restore an specific backup.
```
-bundle exec rake gitlab:app:backup_create
+bundle exec rake gitlab:backup:create
```
Example output:
@@ -40,7 +40,7 @@ Deleting old backups... [SKIPPING]
### Restore a previously created backup
```
-bundle exec rake gitlab:app:backup_restore
+bundle exec rake gitlab:backup:restore
```
Options:
diff --git a/lib/tasks/gitlab/backup.rake b/lib/tasks/gitlab/backup.rake
index 307a6288a24..b7a64394ad0 100644
--- a/lib/tasks/gitlab/backup.rake
+++ b/lib/tasks/gitlab/backup.rake
@@ -1,12 +1,12 @@
require 'active_record/fixtures'
namespace :gitlab do
- namespace :app do
+ namespace :backup do
# Create backup of GitLab system
desc "GITLAB | Create a backup of the GitLab system"
- task :backup_create => :environment do
- Rake::Task["gitlab:app:db_dump"].invoke
- Rake::Task["gitlab:app:repo_dump"].invoke
+ task :create => :environment do
+ Rake::Task["gitlab:backup:db:create"].invoke
+ Rake::Task["gitlab:backup:repo:create"].invoke
Dir.chdir(Gitlab.config.backup.path)
@@ -54,7 +54,7 @@ namespace :gitlab do
# Restore backup of GitLab system
desc "GITLAB | Restore a previously created backup"
- task :backup_restore => :environment do
+ task :restore => :environment do
Dir.chdir(Gitlab.config.backup.path)
# check for existing backups in the backup dir
@@ -62,7 +62,7 @@ namespace :gitlab do
puts "no backups found" if file_list.count == 0
if file_list.count > 1 && ENV["BACKUP"].nil?
puts "Found more than one backup, please specify which one you want to restore:"
- puts "rake gitlab:app:backup_restore BACKUP=timestamp_of_backup"
+ puts "rake gitlab:backup:restore BACKUP=timestamp_of_backup"
exit 1;
end
@@ -93,8 +93,8 @@ namespace :gitlab do
exit 1
end
- Rake::Task["gitlab:app:db_restore"].invoke
- Rake::Task["gitlab:app:repo_restore"].invoke
+ Rake::Task["gitlab:backup:db:restore"].invoke
+ Rake::Task["gitlab:backup:repo:restore"].invoke
# cleanup: remove tmp files
print "Deleting tmp directories..."
@@ -110,82 +110,86 @@ namespace :gitlab do
################################# REPOSITORIES #################################
- task :repo_dump => :environment do
- backup_path_repo = File.join(Gitlab.config.backup.path, "repositories")
- FileUtils.mkdir_p(backup_path_repo) until Dir.exists?(backup_path_repo)
- puts "Dumping repositories:"
- project = Project.all.map { |n| [n.path, n.path_to_repo] }
- project << ["gitolite-admin.git", File.join(File.dirname(project.first.second), "gitolite-admin.git")]
- project.each do |project|
- print "- Dumping repository #{project.first}... "
- if Kernel.system("cd #{project.second} > /dev/null 2>&1 && git bundle create #{backup_path_repo}/#{project.first}.bundle --all > /dev/null 2>&1")
- puts "[DONE]".green
- else
- puts "[FAILED]".red
+ namespace :repo do
+ task :create => :environment do
+ backup_path_repo = File.join(Gitlab.config.backup.path, "repositories")
+ FileUtils.mkdir_p(backup_path_repo) until Dir.exists?(backup_path_repo)
+ puts "Dumping repositories:"
+ project = Project.all.map { |n| [n.path, n.path_to_repo] }
+ project << ["gitolite-admin.git", File.join(File.dirname(project.first.second), "gitolite-admin.git")]
+ project.each do |project|
+ print "- Dumping repository #{project.first}... "
+ if Kernel.system("cd #{project.second} > /dev/null 2>&1 && git bundle create #{backup_path_repo}/#{project.first}.bundle --all > /dev/null 2>&1")
+ puts "[DONE]".green
+ else
+ puts "[FAILED]".red
+ end
end
end
- end
- task :repo_restore => :environment do
- backup_path_repo = File.join(Gitlab.config.backup.path, "repositories")
- puts "Restoring repositories:"
- project = Project.all.map { |n| [n.path, n.path_to_repo] }
- project << ["gitolite-admin.git", File.join(File.dirname(project.first.second), "gitolite-admin.git")]
- project.each do |project|
- print "- Restoring repository #{project.first}... "
- FileUtils.rm_rf(project.second) if File.dirname(project.second) # delete old stuff
- if Kernel.system("cd #{File.dirname(project.second)} > /dev/null 2>&1 && git clone --bare #{backup_path_repo}/#{project.first}.bundle #{project.first}.git > /dev/null 2>&1")
- permission_commands = [
- "sudo chmod -R g+rwX #{Gitlab.config.gitolite.repos_path}",
- "sudo chown -R #{Gitlab.config.gitolite.ssh_user}:#{Gitlab.config.gitolite.ssh_user} #{Gitlab.config.gitolite.repos_path}"
- ]
- permission_commands.each { |command| Kernel.system(command) }
- puts "[DONE]".green
- else
- puts "[FAILED]".red
+ task :restore => :environment do
+ backup_path_repo = File.join(Gitlab.config.backup.path, "repositories")
+ puts "Restoring repositories:"
+ project = Project.all.map { |n| [n.path, n.path_to_repo] }
+ project << ["gitolite-admin.git", File.join(File.dirname(project.first.second), "gitolite-admin.git")]
+ project.each do |project|
+ print "- Restoring repository #{project.first}... "
+ FileUtils.rm_rf(project.second) if File.dirname(project.second) # delete old stuff
+ if Kernel.system("cd #{File.dirname(project.second)} > /dev/null 2>&1 && git clone --bare #{backup_path_repo}/#{project.first}.bundle #{project.first}.git > /dev/null 2>&1")
+ permission_commands = [
+ "sudo chmod -R g+rwX #{Gitlab.config.git_base_path}",
+ "sudo chown -R #{Gitlab.config.ssh_user}:#{Gitlab.config.ssh_user} #{Gitlab.config.git_base_path}"
+ ]
+ permission_commands.each { |command| Kernel.system(command) }
+ puts "[DONE]".green
+ else
+ puts "[FAILED]".red
+ end
end
end
end
###################################### DB ######################################
- task :db_dump => :environment do
- backup_path_db = File.join(Gitlab.config.backup.path, "db")
- FileUtils.mkdir_p(backup_path_db) unless Dir.exists?(backup_path_db)
-
- puts "Dumping database tables:"
- ActiveRecord::Base.connection.tables.each do |tbl|
- print "- Dumping table #{tbl}... "
- count = 1
- File.open(File.join(backup_path_db, tbl + ".yml"), "w+") do |file|
- ActiveRecord::Base.connection.select_all("SELECT * FROM `#{tbl}`").each do |line|
- line.delete_if{|k,v| v.blank?}
- output = {tbl + '_' + count.to_s => line}
- file << output.to_yaml.gsub(/^---\n/,'') + "\n"
- count += 1
+ namespace :db do
+ task :create => :environment do
+ backup_path_db = File.join(Gitlab.config.backup.path, "db")
+ FileUtils.mkdir_p(backup_path_db) unless Dir.exists?(backup_path_db)
+
+ puts "Dumping database tables:"
+ ActiveRecord::Base.connection.tables.each do |tbl|
+ print "- Dumping table #{tbl}... "
+ count = 1
+ File.open(File.join(backup_path_db, tbl + ".yml"), "w+") do |file|
+ ActiveRecord::Base.connection.select_all("SELECT * FROM `#{tbl}`").each do |line|
+ line.delete_if{|k,v| v.blank?}
+ output = {tbl + '_' + count.to_s => line}
+ file << output.to_yaml.gsub(/^---\n/,'') + "\n"
+ count += 1
+ end
+ puts "[DONE]".green
end
- puts "[DONE]".green
end
end
- end
- task :db_restore=> :environment do
- backup_path_db = File.join(Gitlab.config.backup.path, "db")
+ task :restore=> :environment do
+ backup_path_db = File.join(Gitlab.config.backup.path, "db")
- puts "Restoring database tables:"
- Rake::Task["db:reset"].invoke
+ puts "Restoring database tables:"
+ Rake::Task["db:reset"].invoke
- Dir.glob(File.join(backup_path_db, "*.yml") ).each do |dir|
- fixture_file = File.basename(dir, ".*" )
- print "- Loading fixture #{fixture_file}..."
- if File.size(dir) > 0
- ActiveRecord::Fixtures.create_fixtures(backup_path_db, fixture_file)
- puts "[DONE]".green
- else
- puts "[SKIPPING]".yellow
+ Dir.glob(File.join(backup_path_db, "*.yml") ).each do |dir|
+ fixture_file = File.basename(dir, ".*" )
+ print "- Loading fixture #{fixture_file}..."
+ if File.size(dir) > 0
+ ActiveRecord::Fixtures.create_fixtures(backup_path_db, fixture_file)
+ puts "[DONE]".green
+ else
+ puts "[SKIPPING]".yellow
+ end
end
end
end
- end # namespace end: app
+ end # namespace end: backup
end # namespace end: gitlab