heroku-s3-backup-zinergia 0.0.1
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/.gitignore +4 -0
- data/Gemfile +4 -0
- data/README.rdoc +31 -0
- data/Rakefile +2 -0
- data/heroku-s3-backup-zinergia.gemspec +23 -0
- data/lib/heroku-s3-backup-zinergia.rb +20 -0
- data/lib/heroku-s3-backup-zinergia/version.rb +9 -0
- data/lib/tasks/heroku.rake +6 -0
- metadata +75 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/README.rdoc
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
= heroku_s3_backup
|
2
|
+
|
3
|
+
Gem to backup your database on Heroku.com to S3.
|
4
|
+
|
5
|
+
== Usage
|
6
|
+
|
7
|
+
1. Add the heroku_s3_backup gem to your .gems file for Heroku
|
8
|
+
2. Add your S3 config to Heroku
|
9
|
+
heroku config:add s3_access_key_id=YOUR_ID s3_secret_access_key=YOUR_KEY
|
10
|
+
3. Run the HerokuS3Backup.backup method from your console or a cronjob
|
11
|
+
task :cron => :environment do
|
12
|
+
HerokuS3Backup.backup
|
13
|
+
end
|
14
|
+
|
15
|
+
The blog post at http://almosteffortless.com/2010/04/14/automated-heroku-backups/ has some more detailed instructions.
|
16
|
+
|
17
|
+
== Note on Patches/Pull Requests
|
18
|
+
|
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.
|
26
|
+
|
27
|
+
== Copyright
|
28
|
+
|
29
|
+
Code stolen from Trevor Turk (http://almosteffortless.com/2010/04/14/automated-heroku-backups/) and packaged by Eric Davis.
|
30
|
+
|
31
|
+
Copyright (c) 2010 Eric Davis. See LICENSE for details.
|
data/Rakefile
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "heroku-s3-backup-zinergia/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "heroku-s3-backup-zinergia"
|
7
|
+
s.version = Heroku::S3::Backup::Zinergia::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Eric Davis", "Trevor Turk", "Nicolás Hock"]
|
10
|
+
s.email = ["nhocki@gmail.com"]
|
11
|
+
s.homepage = ""
|
12
|
+
s.summary = %q{Backup your heroku database to S3 without suffering}
|
13
|
+
s.description = %q{Backup your heroku database to S3 without suffering. Based on http://almosteffortless.com/2010/04/14/automated-heroku-backups/}
|
14
|
+
|
15
|
+
s.rubyforge_project = "heroku-s3-backup-zinergia"
|
16
|
+
|
17
|
+
s.add_dependency('right_aws', '>= 2.1.0')
|
18
|
+
|
19
|
+
s.files = `git ls-files`.split("\n")
|
20
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
21
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
22
|
+
s.require_paths = ["lib"]
|
23
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class HerokuDatabaseBackupToS3
|
2
|
+
def self.backup
|
3
|
+
begin
|
4
|
+
require 'digest/md5'
|
5
|
+
require 'right_aws'
|
6
|
+
puts "[#{Time.now}] heroku:backup started"
|
7
|
+
name = "#{ENV['APP_NAME']}-#{Time.now.strftime('%Y-%m-%d-%H%M%S')}.dump"
|
8
|
+
db = ENV['DATABASE_URL'].match(/postgres:\/\/([^:]+):([^@]+)@([^\/]+)\/(.+)/)
|
9
|
+
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}"))
|
13
|
+
system "rm tmp/#{name}"
|
14
|
+
puts "[#{Time.now}] heroku:backup complete"
|
15
|
+
# rescue Exception => e
|
16
|
+
# require 'toadhopper'
|
17
|
+
# Toadhopper(ENV['hoptoad_key']).post!(e)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
metadata
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: heroku-s3-backup-zinergia
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 0.0.1
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Eric Davis
|
9
|
+
- Trevor Turk
|
10
|
+
- "Nicol\xC3\xA1s Hock"
|
11
|
+
autorequire:
|
12
|
+
bindir: bin
|
13
|
+
cert_chain: []
|
14
|
+
|
15
|
+
date: 2011-04-24 00:00:00 Z
|
16
|
+
dependencies:
|
17
|
+
- !ruby/object:Gem::Dependency
|
18
|
+
name: right_aws
|
19
|
+
prerelease: false
|
20
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
21
|
+
none: false
|
22
|
+
requirements:
|
23
|
+
- - ">="
|
24
|
+
- !ruby/object:Gem::Version
|
25
|
+
version: 2.1.0
|
26
|
+
type: :runtime
|
27
|
+
version_requirements: *id001
|
28
|
+
description: Backup your heroku database to S3 without suffering. Based on http://almosteffortless.com/2010/04/14/automated-heroku-backups/
|
29
|
+
email:
|
30
|
+
- nhocki@gmail.com
|
31
|
+
executables: []
|
32
|
+
|
33
|
+
extensions: []
|
34
|
+
|
35
|
+
extra_rdoc_files: []
|
36
|
+
|
37
|
+
files:
|
38
|
+
- .gitignore
|
39
|
+
- Gemfile
|
40
|
+
- README.rdoc
|
41
|
+
- Rakefile
|
42
|
+
- heroku-s3-backup-zinergia.gemspec
|
43
|
+
- lib/heroku-s3-backup-zinergia.rb
|
44
|
+
- lib/heroku-s3-backup-zinergia/version.rb
|
45
|
+
- lib/tasks/heroku.rake
|
46
|
+
homepage: ""
|
47
|
+
licenses: []
|
48
|
+
|
49
|
+
post_install_message:
|
50
|
+
rdoc_options: []
|
51
|
+
|
52
|
+
require_paths:
|
53
|
+
- lib
|
54
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
55
|
+
none: false
|
56
|
+
requirements:
|
57
|
+
- - ">="
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: "0"
|
60
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ">="
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: "0"
|
66
|
+
requirements: []
|
67
|
+
|
68
|
+
rubyforge_project: heroku-s3-backup-zinergia
|
69
|
+
rubygems_version: 1.7.2
|
70
|
+
signing_key:
|
71
|
+
specification_version: 3
|
72
|
+
summary: Backup your heroku database to S3 without suffering
|
73
|
+
test_files: []
|
74
|
+
|
75
|
+
has_rdoc:
|