rubypond-s3backup-manager 0.1.00 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/adapters/postgres_adapter.rb +13 -7
- data/lib/models/database_backup.rb +4 -4
- metadata +3 -2
@@ -4,6 +4,8 @@ module S3BackupManager
|
|
4
4
|
def dump_database_to_file(username, database, directory)
|
5
5
|
directory = "#{directory}/s3postgresbackup/#{database}"
|
6
6
|
FileUtils.mkdir_p(directory)
|
7
|
+
FileUtils.chmod_R 0770, directory
|
8
|
+
FileUtils.chown_R nil, username, directory
|
7
9
|
system "cd #{directory} && sudo -u #{username} vacuumdb -z #{database} >/dev/null 2>&1"
|
8
10
|
exit(1) unless $?.success?
|
9
11
|
dump_file = "#{directory}/#{database}.pgsql"
|
@@ -15,17 +17,21 @@ module S3BackupManager
|
|
15
17
|
[directory]
|
16
18
|
end
|
17
19
|
|
18
|
-
def restore_database_from_file(username, database,
|
19
|
-
|
20
|
-
|
21
|
-
|
20
|
+
def restore_database_from_file(username, database, directory)
|
21
|
+
system "chown -R #{username} #{directory}"
|
22
|
+
user_file = "#{directory}/globals.pgsql"
|
23
|
+
system "cd /tmp && sudo -u #{username} psql -f #{user_file} >/dev/null 2>&1"
|
24
|
+
exit(1) unless $?.success?
|
25
|
+
dump_file = "#{directory}/#{database}.pgsql"
|
26
|
+
recreate_database!(username, database)
|
27
|
+
system "cd /tmp && sudo -u #{username} pg_restore --format=t -d #{database} #{dump_file} >/dev/null 2>&1"
|
22
28
|
exit(1) unless $?.success?
|
23
29
|
end
|
24
30
|
|
25
31
|
private
|
26
|
-
def recreate_database(database)
|
27
|
-
|
28
|
-
|
32
|
+
def recreate_database!(username, database)
|
33
|
+
# system "cd /tmp && sudo -u #{username} dropdb #{database}"
|
34
|
+
system "cd /tmp && sudo -u #{username} createdb --encoding=UNICODE #{database} > /dev/null 2>&1"
|
29
35
|
end
|
30
36
|
|
31
37
|
end
|
@@ -29,16 +29,16 @@ module S3BackupManager
|
|
29
29
|
|
30
30
|
def restore(database, timestamp)
|
31
31
|
filename = "#{@options[:adapter]}/#{timestamp}/#{database}"
|
32
|
-
@dumped_filename = "/tmp/#{
|
33
|
-
super(filename, timestamp,
|
34
|
-
restore_database_from_file(@options[:username], database,
|
32
|
+
@dumped_filename = "/tmp/#{database}/s3postgresbackup/#{database}"
|
33
|
+
super(filename, timestamp, "/", "databases")
|
34
|
+
restore_database_from_file(@options[:username], database, @dumped_filename)
|
35
35
|
db_cleanup!
|
36
36
|
end
|
37
37
|
|
38
38
|
private
|
39
39
|
def db_cleanup!
|
40
40
|
if @dumped_filename
|
41
|
-
|
41
|
+
FileUtils.rm_r(@dumped_filename)
|
42
42
|
@dumped_filename = nil
|
43
43
|
end
|
44
44
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubypond-s3backup-manager
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Glenn Gillen
|
@@ -74,6 +74,7 @@ files:
|
|
74
74
|
- spec/spec_helper.rb
|
75
75
|
has_rdoc: "false"
|
76
76
|
homepage: http://github.com/rubypond/s3backup-manager
|
77
|
+
licenses:
|
77
78
|
post_install_message:
|
78
79
|
rdoc_options: []
|
79
80
|
|
@@ -95,7 +96,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
95
96
|
requirements: []
|
96
97
|
|
97
98
|
rubyforge_project:
|
98
|
-
rubygems_version: 1.
|
99
|
+
rubygems_version: 1.3.5
|
99
100
|
signing_key:
|
100
101
|
specification_version: 2
|
101
102
|
summary: Scripts and daemon to manage encrypted backups on AmazonS3
|