rubypond-s3backup-manager 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- data/config/config.yml +2 -1
- data/lib/adapters/postgres_adapter.rb +4 -5
- data/lib/models/database_backup.rb +2 -2
- data/lib/models/file_backup.rb +6 -6
- metadata +1 -1
data/config/config.yml
CHANGED
@@ -18,16 +18,16 @@ module S3BackupManager
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def restore_database_from_file(username, database, directory)
|
21
|
-
system "chown -R #{username}
|
21
|
+
system "chown -R #{username} #{config[:temp_dir]}/#{database}"
|
22
22
|
user_file = "#{directory}/globals.pgsql"
|
23
|
-
system "cd
|
23
|
+
system "cd #{config[:temp_dir]} && sudo -u #{username} psql -f #{user_file} >/dev/null 2>&1"
|
24
24
|
unless $?.success?
|
25
25
|
puts "Unable to load in the users"
|
26
26
|
exit(1)
|
27
27
|
end
|
28
28
|
dump_file = "#{directory}/#{database}.pgsql"
|
29
29
|
recreate_database!(username, database)
|
30
|
-
system "cd
|
30
|
+
system "cd #{config[:temp_dir]} && sudo -u #{username} pg_restore --format=t -d #{database} #{dump_file} >/dev/null 2>&1"
|
31
31
|
unless $?.success?
|
32
32
|
puts "Unable to restore database. Did you provide a username that has permission?"
|
33
33
|
exit(1)
|
@@ -36,8 +36,7 @@ module S3BackupManager
|
|
36
36
|
|
37
37
|
private
|
38
38
|
def recreate_database!(username, database)
|
39
|
-
|
40
|
-
system "cd /tmp && sudo -u #{username} createdb --encoding=UNICODE #{database} > /dev/null 2>&1"
|
39
|
+
system "cd #{config[:temp_dir]} && sudo -u #{username} createdb --encoding=UNICODE #{database} > /dev/null 2>&1"
|
41
40
|
end
|
42
41
|
|
43
42
|
end
|
@@ -19,7 +19,7 @@ module S3BackupManager
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def backup(database)
|
22
|
-
directory = "
|
22
|
+
directory = "#{config[:temp_dir]}/#{database}"
|
23
23
|
files = dump_database_to_file(@options[:username], database, directory)
|
24
24
|
super(files, "databases/#{@options[:adapter]}")
|
25
25
|
files.each do |file|
|
@@ -29,7 +29,7 @@ module S3BackupManager
|
|
29
29
|
|
30
30
|
def restore(database, timestamp)
|
31
31
|
filename = "#{@options[:adapter]}/#{timestamp}/#{database}"
|
32
|
-
@dumped_filename = "
|
32
|
+
@dumped_filename = "#{config[:temp_dir]}/#{database}/s3postgresbackup/#{database}"
|
33
33
|
super(filename, timestamp, "/", "databases")
|
34
34
|
restore_database_from_file(@options[:username], database, @dumped_filename)
|
35
35
|
db_cleanup!
|
data/lib/models/file_backup.rb
CHANGED
@@ -15,9 +15,9 @@ module S3BackupManager
|
|
15
15
|
bucket.files.select{|f| f.key.match(%r{^filesystem/})}
|
16
16
|
end
|
17
17
|
|
18
|
-
def backup(
|
19
|
-
stored_file_name = "#{Time.now.strftime("%Y%m%d%H%M%S")}/#{File.basename(
|
20
|
-
encrypted_file = encrypt(pack(
|
18
|
+
def backup(file, directory = "filesystem")
|
19
|
+
stored_file_name = "#{Time.now.strftime("%Y%m%d%H%M%S")}/#{File.basename(file)}"
|
20
|
+
encrypted_file = encrypt(pack(file))
|
21
21
|
bucket.store("#{directory}/#{stored_file_name}", open(encrypted_file))
|
22
22
|
cleanup!
|
23
23
|
end
|
@@ -83,10 +83,10 @@ module S3BackupManager
|
|
83
83
|
@decrypted_filename
|
84
84
|
end
|
85
85
|
|
86
|
-
def pack(
|
87
|
-
@packed_filename = "#{random_string}_#{File.basename(
|
86
|
+
def pack(file)
|
87
|
+
@packed_filename = "#{random_string}_#{File.basename(file)}.tgz"
|
88
88
|
tgz = Zlib::GzipWriter.new(File.open(@packed_filename, 'wb'))
|
89
|
-
Archive::Tar::Minitar.pack(
|
89
|
+
Archive::Tar::Minitar.pack(file, tgz, recurse_directories = true)
|
90
90
|
@packed_filename
|
91
91
|
end
|
92
92
|
|