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.
@@ -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, filename)
19
- # `psql -h localhost -d postgres -U postgres -f "/path/to/useraccts.sql" `
20
- # exit(1) unless $?.success?
21
- `sudo -u #{username} pg_restore --format=t -d #{database} #{filename}`
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
- `sudo -u postgres dropdb #{database}`
28
- `sudo -u postgres createdb --encoding=UNICODE #{database}`
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/#{random_string}"
33
- super(filename, timestamp, @dumped_filename, "databases")
34
- restore_database_from_file(@options[:username], database, "#{@dumped_filename}/tmp/#{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
- File.delete(@dumped_filename)
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.00
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.2.0
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