heroku_cloud_backup 0.1.2 → 0.1.3
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.
- checksums.yaml +4 -4
- data/.travis.yml +10 -7
- data/Gemfile +1 -1
- data/LICENSE +1 -1
- data/README.md +6 -14
- data/heroku_cloud_backup.gemspec +1 -0
- data/lib/heroku_cloud_backup.rb +32 -15
- data/lib/heroku_cloud_backup/version.rb +1 -1
- metadata +17 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 86f1065241b1b2639c0a0f4574a3628c37e44ce7
|
4
|
+
data.tar.gz: b2484d2e557de82ac81321a56d1dbaf076f969cc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 903de573fbce10d153e16ff271eb46cbed06e51c8933108ea34032232139380ae9f5a0eccc57fe9d28a3d15d4e7c61e7c705faf0eb9f7a0361e30ef8bb7c9ab7
|
7
|
+
data.tar.gz: f4f69e08c0d640618a6688dcfb5a064f263c22c644fc52ac332239933b2ea345b22fdf230ebf8b9660c2f7e2c06b479c5900fb06209b1403ab9d5736a2a20beb
|
data/.travis.yml
CHANGED
@@ -1,11 +1,14 @@
|
|
1
1
|
language: ruby
|
2
2
|
rvm:
|
3
|
-
- 1.8.7
|
4
|
-
- 1.9.2
|
5
3
|
- 1.9.3
|
6
4
|
- 2.0.0
|
7
|
-
-
|
8
|
-
-
|
9
|
-
- rbx
|
10
|
-
-
|
11
|
-
-
|
5
|
+
- 2.1.5
|
6
|
+
- 2.2.0
|
7
|
+
- rbx
|
8
|
+
- ruby-head
|
9
|
+
- jruby-head
|
10
|
+
|
11
|
+
matrix:
|
12
|
+
allow_failures:
|
13
|
+
- rvm: ruby-head
|
14
|
+
- rvm: jruby-head
|
data/Gemfile
CHANGED
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -55,17 +55,23 @@ HCB_MAX (Defaults to no limit) - The number of backups to store before the scrip
|
|
55
55
|
|
56
56
|
heroku config:add HCB_MAX=10
|
57
57
|
|
58
|
+
HCB_REGION (AWS defaults 'us-east-1', Rackspace defaults to :dfw) - The region of the provider. **Optional**
|
59
|
+
|
60
|
+
heroku config:add HCB_REGION=us-west-1
|
61
|
+
|
58
62
|
Depending on which provider you specify, you'll need to provide different login credentials.
|
59
63
|
|
60
64
|
For Amazon:
|
61
65
|
|
62
66
|
heroku config:add HCB_KEY1="aws_access_key_id"
|
63
67
|
heroku config:add HCB_KEY2="aws_secret_access_key"
|
68
|
+
heroku config:add HCB_REGION="us-east-1"
|
64
69
|
|
65
70
|
For Rackspace:
|
66
71
|
|
67
72
|
heroku config:add HCB_KEY1="rackspace_username"
|
68
73
|
heroku config:add HCB_KEY2="rackspace_api_key"
|
74
|
+
heroku config:add HCB_REGION="dfw"
|
69
75
|
|
70
76
|
For Google Storage:
|
71
77
|
|
@@ -82,17 +88,3 @@ You can run this manually like this:
|
|
82
88
|
I would recommend you create a temporarily public url from your cloud storage. I do this with Cyberduck. It has a neat feature where you can right click on a file and it'll generate temporarily accessible urls to that file, with the auth params for it. So once you have that url you can store like this:
|
83
89
|
|
84
90
|
heroku pgbackups:restore 'http://my-bucket-name.s3.amazonaws.com/db/DATABASE_URL/2011-06-09-014500.dump?authparameters'
|
85
|
-
|
86
|
-
## Note on Patches/Pull Requests
|
87
|
-
|
88
|
-
* Fork the project.
|
89
|
-
* Make your feature addition or bug fix.
|
90
|
-
* Add tests for it. This is important so I don't break it in a
|
91
|
-
future version unintentionally.
|
92
|
-
* Commit, do not mess with rakefile, version, or history.
|
93
|
-
(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)
|
94
|
-
* Send me a pull request. Bonus points for topic branches.
|
95
|
-
|
96
|
-
### Copyright
|
97
|
-
|
98
|
-
Copyright (c) 2011-2012 Jack Chu. See LICENSE for details.
|
data/heroku_cloud_backup.gemspec
CHANGED
@@ -12,6 +12,7 @@ Gem::Specification.new do |s|
|
|
12
12
|
s.homepage = "http://jackchu.com/blog/2011/06/10/automated-heroku-database-backups-to-amazon-s3/"
|
13
13
|
s.summary = %q{Backup pg dumps to the cloud}
|
14
14
|
s.description = %q{PG backups into the cloud with fog}
|
15
|
+
s.license = "MIT"
|
15
16
|
|
16
17
|
s.rubyforge_project = "heroku_cloud_backup"
|
17
18
|
|
data/lib/heroku_cloud_backup.rb
CHANGED
@@ -23,7 +23,7 @@ module HerokuCloudBackup
|
|
23
23
|
end
|
24
24
|
|
25
25
|
if !directory
|
26
|
-
directory = connection.directories.create(:
|
26
|
+
directory = connection.directories.create(key: bucket_name)
|
27
27
|
end
|
28
28
|
|
29
29
|
public_url = b["public_url"]
|
@@ -32,7 +32,7 @@ module HerokuCloudBackup
|
|
32
32
|
name = "#{created_at.strftime('%Y-%m-%d-%H%M%S')}.dump"
|
33
33
|
begin
|
34
34
|
log "creating #{@backup_path}/#{b["from_name"]}/#{name}"
|
35
|
-
directory.files.create(:
|
35
|
+
directory.files.create(key: "#{backup_path}/#{b["from_name"]}/#{name}", body: open(public_url))
|
36
36
|
rescue Exception => e
|
37
37
|
raise HerokuCloudBackup::Errors::UploadError.new(e.message)
|
38
38
|
end
|
@@ -52,20 +52,25 @@ module HerokuCloudBackup
|
|
52
52
|
begin
|
53
53
|
case provider
|
54
54
|
when 'aws'
|
55
|
-
Fog::Storage.new(
|
56
|
-
|
57
|
-
|
58
|
-
|
55
|
+
Fog::Storage.new(
|
56
|
+
provider: 'AWS',
|
57
|
+
aws_access_key_id: key1,
|
58
|
+
aws_secret_access_key: key2,
|
59
|
+
region: region,
|
60
|
+
)
|
59
61
|
when 'rackspace'
|
60
|
-
Fog::Storage.new(
|
61
|
-
|
62
|
-
|
63
|
-
|
62
|
+
Fog::Storage.new(
|
63
|
+
provider: 'Rackspace',
|
64
|
+
rackspace_username: key1,
|
65
|
+
rackspace_api_key: key2,
|
66
|
+
rackspace_region: region.to_sym,
|
67
|
+
)
|
64
68
|
when 'google'
|
65
|
-
Fog::Storage.new(
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
+
Fog::Storage.new(
|
70
|
+
provider: 'Google',
|
71
|
+
google_storage_secret_access_key: key1,
|
72
|
+
google_storage_access_key_id: key2,
|
73
|
+
)
|
69
74
|
else
|
70
75
|
raise "Your provider was invalid. Valid values are 'aws', 'rackspace', or 'google'"
|
71
76
|
end
|
@@ -103,6 +108,18 @@ module HerokuCloudBackup
|
|
103
108
|
ENV['HCB_KEY2'] || raise(HerokuCloudBackup::Errors::NotFound.new("Please provide a 'HCB_KEY2' config variable."))
|
104
109
|
end
|
105
110
|
|
111
|
+
def region
|
112
|
+
region = case provider
|
113
|
+
when 'aws'
|
114
|
+
'us-east-1'
|
115
|
+
when 'rackspace'
|
116
|
+
'dfw'
|
117
|
+
else
|
118
|
+
nil
|
119
|
+
end
|
120
|
+
ENV['HCB_REGION'] || region
|
121
|
+
end
|
122
|
+
|
106
123
|
def log(message)
|
107
124
|
puts "[#{Time.now}] #{message}"
|
108
125
|
end
|
@@ -111,7 +128,7 @@ module HerokuCloudBackup
|
|
111
128
|
number_of_files = ENV['HCB_MAX']
|
112
129
|
if number_of_files && number_of_files.to_i > 0
|
113
130
|
directory = connection.directories.get(bucket_name)
|
114
|
-
files = directory.files.all(:
|
131
|
+
files = directory.files.all(prefix: backup_path)
|
115
132
|
file_count = 0
|
116
133
|
files.reverse.each do |file|
|
117
134
|
if file.key =~ Regexp.new("/#{backup_path}\/\d{4}-\d{2}-\d{2}-\d{6}\.sql\.gz$/i")
|
metadata
CHANGED
@@ -1,69 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: heroku_cloud_backup
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jack Chu
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-01-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fog
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 1.6.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 1.6.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: heroku
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 2.32.14
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 2.32.14
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: minitest
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
description: PG backups into the cloud with fog
|
@@ -73,8 +73,8 @@ executables: []
|
|
73
73
|
extensions: []
|
74
74
|
extra_rdoc_files: []
|
75
75
|
files:
|
76
|
-
- .gitignore
|
77
|
-
- .travis.yml
|
76
|
+
- ".gitignore"
|
77
|
+
- ".travis.yml"
|
78
78
|
- CHANGELOG.md
|
79
79
|
- Gemfile
|
80
80
|
- LICENSE
|
@@ -88,7 +88,8 @@ files:
|
|
88
88
|
- lib/heroku_cloud_backup/version.rb
|
89
89
|
- spec/heroku_cloud_backup_spec.rb
|
90
90
|
homepage: http://jackchu.com/blog/2011/06/10/automated-heroku-database-backups-to-amazon-s3/
|
91
|
-
licenses:
|
91
|
+
licenses:
|
92
|
+
- MIT
|
92
93
|
metadata: {}
|
93
94
|
post_install_message:
|
94
95
|
rdoc_options: []
|
@@ -96,17 +97,17 @@ require_paths:
|
|
96
97
|
- lib
|
97
98
|
required_ruby_version: !ruby/object:Gem::Requirement
|
98
99
|
requirements:
|
99
|
-
- -
|
100
|
+
- - ">="
|
100
101
|
- !ruby/object:Gem::Version
|
101
102
|
version: '0'
|
102
103
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
103
104
|
requirements:
|
104
|
-
- -
|
105
|
+
- - ">="
|
105
106
|
- !ruby/object:Gem::Version
|
106
107
|
version: '0'
|
107
108
|
requirements: []
|
108
109
|
rubyforge_project: heroku_cloud_backup
|
109
|
-
rubygems_version: 2.
|
110
|
+
rubygems_version: 2.4.5
|
110
111
|
signing_key:
|
111
112
|
specification_version: 4
|
112
113
|
summary: Backup pg dumps to the cloud
|