summaryrefslogtreecommitdiff
path: root/lib/backup.rb
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-04-05 19:01:19 +0300
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-04-05 19:01:19 +0300
commitc33d5e16fe5f5dde4f270adaf7fb6fe5b9552018 (patch)
tree816c735dfda1eabb9c2eae02595e5203d5baed69 /lib/backup.rb
parent362d82d10e217231cd607e932a64b3e9b48f67c8 (diff)
downloadgitlab-ce-c33d5e16fe5f5dde4f270adaf7fb6fe5b9552018.tar.gz
refactor backup/restore
Diffstat (limited to 'lib/backup.rb')
-rw-r--r--lib/backup.rb56
1 files changed, 0 insertions, 56 deletions
diff --git a/lib/backup.rb b/lib/backup.rb
deleted file mode 100644
index ad80ab1c7f7..00000000000
--- a/lib/backup.rb
+++ /dev/null
@@ -1,56 +0,0 @@
-require 'yaml'
-
-class Backup
- attr_reader :config, :db_dir
-
- def initialize
- @config = YAML.load_file(File.join(Rails.root,'config','database.yml'))[Rails.env]
- @db_dir = File.join(Gitlab.config.backup.path, 'db')
- FileUtils.mkdir_p(@db_dir) unless Dir.exists?(@db_dir)
- end
-
- def backup_db
- case config["adapter"]
- when /^mysql/ then
- system("mysqldump #{mysql_args} #{config['database']} > #{db_file_name}")
- when "postgresql" then
- pg_env
- system("pg_dump #{config['database']} > #{db_file_name}")
- end
- end
-
- def restore_db
- case config["adapter"]
- when /^mysql/ then
- system("mysql #{mysql_args} #{config['database']} < #{db_file_name}")
- when "postgresql" then
- pg_env
- system("pg_restore #{config['database']} #{db_file_name}")
- end
- end
-
- protected
-
- def db_file_name
- File.join(db_dir, 'database.sql')
- end
-
- def mysql_args
- args = {
- 'host' => '--host',
- 'port' => '--port',
- 'socket' => '--socket',
- 'username' => '--user',
- 'encoding' => '--default-character-set',
- 'password' => '--password'
- }
- args.map { |opt, arg| "#{arg}=#{config[opt]}" if config[opt] }.compact.join(' ')
- end
-
- def pg_env
- ENV['PGUSER'] = config["username"] if config["username"]
- ENV['PGHOST'] = config["host"] if config["host"]
- ENV['PGPORT'] = config["port"].to_s if config["port"]
- ENV['PGPASSWORD'] = config["password"].to_s if config["password"]
- end
-end