heroku-s3-backup-zinergia 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,31 +1,34 @@
1
- = heroku_s3_backup
1
+ = Heroku S3 Backup (Zinergia's version)
2
2
 
3
- Gem to backup your database on Heroku.com to S3.
3
+ Gem to backup postgress your database on Heroku.com to S3.
4
+
5
+ This was copied from https://github.com/edavis10/heroku_s3_backup but we added support for Ruby 1.9.2 and also used Bundler for the gem management (it's much cleaner).
6
+
7
+ Other than that, it's the same...
4
8
 
5
9
  == Usage
6
10
 
7
- 1. Add the heroku_s3_backup gem to your .gems file for Heroku
11
+ 1. Add the 'heroku-s3-backup-zinergia' gem to your Gemfile for Heroku
12
+
8
13
  2. Add your S3 config to Heroku
14
+
9
15
  heroku config:add s3_access_key_id=YOUR_ID s3_secret_access_key=YOUR_KEY
16
+
10
17
  3. Run the HerokuS3Backup.backup method from your console or a cronjob
18
+
11
19
  task :cron => :environment do
12
- HerokuS3Backup.backup
20
+ require 'heroku-s3-backup-zinergia'
21
+ HerokuDatabaseBackupToS3.backup
13
22
  end
14
23
 
15
24
  The blog post at http://almosteffortless.com/2010/04/14/automated-heroku-backups/ has some more detailed instructions.
16
25
 
17
- == Note on Patches/Pull Requests
26
+ == Patches/Pull Requests
18
27
 
19
- * Fork the project.
20
- * Make your feature addition or bug fix.
21
- * Add tests for it. This is important so I don't break it in a
22
- future version unintentionally.
23
- * Commit, do not mess with rakefile, version, or history.
24
- (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
25
- * Send me a pull request. Bonus points for topic branches.
28
+ Everything it's welcome. But please, if you'll edit the version file, make that a separate commit. That way I can edit that if needed.
26
29
 
27
30
  == Copyright
28
31
 
29
32
  Code stolen from Trevor Turk (http://almosteffortless.com/2010/04/14/automated-heroku-backups/) and packaged by Eric Davis.
30
33
 
31
- Copyright (c) 2010 Eric Davis. See LICENSE for details.
34
+ Copyright (c) 2011 Zinergia. Released under the MIT License
@@ -14,7 +14,7 @@ Gem::Specification.new do |s|
14
14
 
15
15
  s.rubyforge_project = "heroku-s3-backup-zinergia"
16
16
 
17
- s.add_dependency('right_aws', '>= 2.1.0')
17
+ s.add_dependency('aws-s3', '~> 0.6.2')
18
18
 
19
19
  s.files = `git ls-files`.split("\n")
20
20
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
@@ -1,20 +1,31 @@
1
1
  class HerokuDatabaseBackupToS3
2
+
3
+ def self.create_bucket_if_it_does_not_exist(bucket_name)
4
+ AWS::S3::Bucket.find(bucket_name)
5
+ rescue AWS::S3::NoSuchBucket => e
6
+ puts "Bucket '#{bucket_name}' does not exist. Creating it..."
7
+ AWS::S3::Bucket.create(bucket_name)
8
+ end
9
+
2
10
  def self.backup
3
11
  begin
4
- require 'digest/md5'
5
- require 'right_aws'
12
+ require 'aws/s3'
6
13
  puts "[#{Time.now}] heroku:backup started"
7
14
  name = "#{ENV['APP_NAME']}-#{Time.now.strftime('%Y-%m-%d-%H%M%S')}.dump"
8
15
  db = ENV['DATABASE_URL'].match(/postgres:\/\/([^:]+):([^@]+)@([^\/]+)\/(.+)/)
9
16
  system "PGPASSWORD=#{db[2]} pg_dump -Fc --username=#{db[1]} --host=#{db[3]} #{db[4]} > tmp/#{name}"
10
- s3 = RightAws::S3.new(ENV['s3_access_key_id'], ENV['s3_secret_access_key'])
11
- bucket = s3.bucket("#{ENV['APP_NAME']}-heroku-backups", true, 'private')
12
- bucket.put(name, open("tmp/#{name}"))
17
+ bucket_name = "#{ENV['APP_NAME']}-heroku-backups"
18
+ create_bucket_if_it_does_not_exist(bucket_name)
19
+
20
+ AWS::S3::S3Object.store(name, open("tmp/#{name}"),
21
+ bucket_name,
22
+ :access => :private)
23
+
24
+ # s3 = RightAws::S3.new(ENV['s3_access_key_id'], ENV['s3_secret_access_key'])
25
+ # bucket = s3.bucket("#{ENV['APP_NAME']}-heroku-backups", true, 'private')
26
+ # bucket.put(name, open("tmp/#{name}"))
13
27
  system "rm tmp/#{name}"
14
28
  puts "[#{Time.now}] heroku:backup complete"
15
- # rescue Exception => e
16
- # require 'toadhopper'
17
- # Toadhopper(ENV['hoptoad_key']).post!(e)
18
29
  end
19
30
  end
20
31
  end
@@ -2,7 +2,7 @@ module Heroku
2
2
  module S3
3
3
  module Backup
4
4
  module Zinergia
5
- VERSION = "0.0.1"
5
+ VERSION = "0.0.2"
6
6
  end
7
7
  end
8
8
  end
@@ -1,6 +1,7 @@
1
1
  namespace :heroku do
2
2
  desc "Example showing PostgreSQL database backups from Heroku to Amazon S3"
3
3
  task :backup => :environment do
4
+ require 'heroku-s3-backup-zinergia'
4
5
  HerokuDatabaseBackupToS3.backup
5
6
  end
6
7
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: heroku-s3-backup-zinergia
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.1
5
+ version: 0.0.2
6
6
  platform: ruby
7
7
  authors:
8
8
  - Eric Davis
@@ -12,17 +12,17 @@ autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
14
 
15
- date: 2011-04-24 00:00:00 Z
15
+ date: 2011-05-11 00:00:00 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
- name: right_aws
18
+ name: aws-s3
19
19
  prerelease: false
20
20
  requirement: &id001 !ruby/object:Gem::Requirement
21
21
  none: false
22
22
  requirements:
23
- - - ">="
23
+ - - ~>
24
24
  - !ruby/object:Gem::Version
25
- version: 2.1.0
25
+ version: 0.6.2
26
26
  type: :runtime
27
27
  version_requirements: *id001
28
28
  description: Backup your heroku database to S3 without suffering. Based on http://almosteffortless.com/2010/04/14/automated-heroku-backups/