rubypond-s3backup-manager 0.1.4 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
|