db2fog 0.5.4 → 0.6.0
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/HISTORY +2 -0
- data/README.rdoc +23 -4
- data/lib/db2fog.rb +17 -4
- metadata +74 -113
data/HISTORY
CHANGED
data/README.rdoc
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
= DB2Fog
|
2
2
|
|
3
|
-
A rails plugin to backup Mysql to a cloud storage provider. You're looking at
|
3
|
+
A rails plugin to backup Mysql or PostgreSQL to a cloud storage provider. You're looking at
|
4
4
|
a monthly spend of four cents. So pony up you cheap bastard, and store your
|
5
5
|
backups offsite.
|
6
6
|
|
7
|
-
A grandfather style system is
|
7
|
+
A grandfather style system is used to decide what backups to keep copies of:
|
8
8
|
|
9
9
|
* all backups from the past 24 hours
|
10
10
|
* one backup per day for the past week
|
@@ -53,6 +53,24 @@ providers they should work with just a config change to Db2Fog.
|
|
53
53
|
:provider => 'Local'
|
54
54
|
}
|
55
55
|
|
56
|
+
== Passing options to the database driver
|
57
|
+
|
58
|
+
Database adaptors may support further configuration via the :database_options hash.
|
59
|
+
|
60
|
+
DB2Fog.config = {
|
61
|
+
:directory => 'bucket-name',
|
62
|
+
:local_root => Rails.root.to_s + '/db/backups',
|
63
|
+
:provider => 'Local',
|
64
|
+
:database_options => {
|
65
|
+
:pg_version => 8
|
66
|
+
}
|
67
|
+
}
|
68
|
+
|
69
|
+
Supported database options:
|
70
|
+
|
71
|
+
pg_version 8 or 9
|
72
|
+
The major version of PostgreSQL installed on the server. Defaults to 9.
|
73
|
+
|
56
74
|
== Usage
|
57
75
|
|
58
76
|
# Add to your crontab or whatever
|
@@ -66,12 +84,13 @@ providers they should work with just a config change to Db2Fog.
|
|
66
84
|
|
67
85
|
This is pure so ruby should run on most ruby VMs. I develop on MRI 1.9.2.
|
68
86
|
|
69
|
-
This will only work
|
87
|
+
This will only work with rails 3. Supporting earlier versions is more
|
70
88
|
complication than I feel like handling at the moment.
|
71
89
|
|
72
90
|
== Development
|
73
91
|
|
74
|
-
Specs are
|
92
|
+
Specs are a little weak and mysql based. This code is bit hackish but is being
|
93
|
+
used by quite a few people.
|
75
94
|
|
76
95
|
== Kudos
|
77
96
|
|
data/lib/db2fog.rb
CHANGED
@@ -141,24 +141,37 @@ class DB2Fog
|
|
141
141
|
def pg_dump_options
|
142
142
|
cmd = ''
|
143
143
|
cmd += " -U #{@credentials[:username]} " unless @credentials[:username].nil?
|
144
|
-
cmd += " -w"
|
145
144
|
cmd += " -h '#{@credentials[:host]}'" unless @credentials[:host].nil?
|
145
|
+
cmd += " -w" if pg_version >= 9
|
146
146
|
cmd += " #{@credentials[:database]}"
|
147
147
|
end
|
148
148
|
|
149
149
|
def psql_options
|
150
150
|
cmd = ''
|
151
151
|
cmd += " -U #{@credentials[:username]} " unless @credentials[:username].nil?
|
152
|
-
cmd += " -w"
|
153
152
|
cmd += " -h '#{@credentials[:host]}'" unless @credentials[:host].nil?
|
153
|
+
cmd += " -w" if pg_version >= 9
|
154
154
|
cmd += " -d #{@credentials[:database]}"
|
155
155
|
end
|
156
156
|
|
157
|
+
def pg_version
|
158
|
+
opts = database_options || {}
|
159
|
+
opts[:pg_version] || 9
|
160
|
+
end
|
161
|
+
|
157
162
|
def run(command)
|
158
163
|
result = system(command)
|
159
164
|
raise("error, process exited with status #{$?.exitstatus}") unless result
|
160
165
|
end
|
161
166
|
|
167
|
+
def database_options
|
168
|
+
if DB2Fog.config.respond_to?(:[])
|
169
|
+
DB2Fog.config[:database_options]
|
170
|
+
else
|
171
|
+
raise "DB2Fog not configured"
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
162
175
|
end
|
163
176
|
|
164
177
|
class FogStore
|
@@ -188,7 +201,7 @@ class DB2Fog
|
|
188
201
|
|
189
202
|
def fog_options
|
190
203
|
if DB2Fog.config.respond_to?(:[])
|
191
|
-
DB2Fog.config.except(:directory)
|
204
|
+
DB2Fog.config.except(:directory, :database_options)
|
192
205
|
else
|
193
206
|
raise "DB2Fog not configured"
|
194
207
|
end
|
@@ -196,7 +209,7 @@ class DB2Fog
|
|
196
209
|
|
197
210
|
def directory_name
|
198
211
|
if DB2Fog.config.respond_to?(:[])
|
199
|
-
|
212
|
+
DB2Fog.config[:directory]
|
200
213
|
else
|
201
214
|
raise "DB2Fog not configured"
|
202
215
|
end
|
metadata
CHANGED
@@ -1,171 +1,132 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: db2fog
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 5
|
8
|
-
- 4
|
9
|
-
version: 0.5.4
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.6.0
|
5
|
+
prerelease:
|
10
6
|
platform: ruby
|
11
|
-
authors:
|
7
|
+
authors:
|
12
8
|
- James Healy
|
13
9
|
autorequire:
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
dependencies:
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-10-24 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: rails
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &23501480 !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
18
|
+
requirements:
|
26
19
|
- - ~>
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
- 3
|
30
|
-
- 0
|
31
|
-
version: "3.0"
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '3.0'
|
32
22
|
type: :runtime
|
33
|
-
version_requirements: *id001
|
34
|
-
- !ruby/object:Gem::Dependency
|
35
|
-
name: activerecord
|
36
23
|
prerelease: false
|
37
|
-
|
24
|
+
version_requirements: *23501480
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: activerecord
|
27
|
+
requirement: &24626880 !ruby/object:Gem::Requirement
|
38
28
|
none: false
|
39
|
-
requirements:
|
29
|
+
requirements:
|
40
30
|
- - ~>
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
|
43
|
-
- 3
|
44
|
-
- 0
|
45
|
-
version: "3.0"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '3.0'
|
46
33
|
type: :runtime
|
47
|
-
version_requirements: *id002
|
48
|
-
- !ruby/object:Gem::Dependency
|
49
|
-
name: fog
|
50
34
|
prerelease: false
|
51
|
-
|
35
|
+
version_requirements: *24626880
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: fog
|
38
|
+
requirement: &24678760 !ruby/object:Gem::Requirement
|
52
39
|
none: false
|
53
|
-
requirements:
|
40
|
+
requirements:
|
54
41
|
- - ~>
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
|
57
|
-
- 1
|
58
|
-
- 0
|
59
|
-
version: "1.0"
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '1.0'
|
60
44
|
type: :runtime
|
61
|
-
version_requirements: *id003
|
62
|
-
- !ruby/object:Gem::Dependency
|
63
|
-
name: rake
|
64
45
|
prerelease: false
|
65
|
-
|
46
|
+
version_requirements: *24678760
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: rake
|
49
|
+
requirement: &24690660 !ruby/object:Gem::Requirement
|
66
50
|
none: false
|
67
|
-
requirements:
|
68
|
-
- -
|
69
|
-
- !ruby/object:Gem::Version
|
70
|
-
|
71
|
-
- 0
|
72
|
-
version: "0"
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
73
55
|
type: :development
|
74
|
-
version_requirements: *id004
|
75
|
-
- !ruby/object:Gem::Dependency
|
76
|
-
name: mysql2
|
77
56
|
prerelease: false
|
78
|
-
|
57
|
+
version_requirements: *24690660
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: mysql2
|
60
|
+
requirement: &24689120 !ruby/object:Gem::Requirement
|
79
61
|
none: false
|
80
|
-
requirements:
|
81
|
-
- -
|
82
|
-
- !ruby/object:Gem::Version
|
83
|
-
|
84
|
-
- 0
|
85
|
-
version: "0"
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
86
66
|
type: :development
|
87
|
-
version_requirements: *id005
|
88
|
-
- !ruby/object:Gem::Dependency
|
89
|
-
name: rspec
|
90
67
|
prerelease: false
|
91
|
-
|
68
|
+
version_requirements: *24689120
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
requirement: &24699980 !ruby/object:Gem::Requirement
|
92
72
|
none: false
|
93
|
-
requirements:
|
73
|
+
requirements:
|
94
74
|
- - ~>
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
|
97
|
-
- 2
|
98
|
-
- 6
|
99
|
-
version: "2.6"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '2.6'
|
100
77
|
type: :development
|
101
|
-
version_requirements: *id006
|
102
|
-
- !ruby/object:Gem::Dependency
|
103
|
-
name: timecop
|
104
78
|
prerelease: false
|
105
|
-
|
79
|
+
version_requirements: *24699980
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: timecop
|
82
|
+
requirement: &24715360 !ruby/object:Gem::Requirement
|
106
83
|
none: false
|
107
|
-
requirements:
|
84
|
+
requirements:
|
108
85
|
- - ~>
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
segments:
|
111
|
-
- 0
|
112
|
-
- 3
|
113
|
-
- 5
|
86
|
+
- !ruby/object:Gem::Version
|
114
87
|
version: 0.3.5
|
115
88
|
type: :development
|
116
|
-
|
117
|
-
|
118
|
-
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: *24715360
|
91
|
+
description: db2fog provides rake tasks for backing up and restoring your DB to cloud
|
92
|
+
storage providers
|
93
|
+
email:
|
119
94
|
- james@yob.id.au
|
120
95
|
executables: []
|
121
|
-
|
122
96
|
extensions: []
|
123
|
-
|
124
97
|
extra_rdoc_files: []
|
125
|
-
|
126
|
-
files:
|
98
|
+
files:
|
127
99
|
- lib/db2fog/railtie.rb
|
128
100
|
- lib/db2fog/tasks.rb
|
129
101
|
- lib/db2fog.rb
|
130
102
|
- README.rdoc
|
131
103
|
- HISTORY
|
132
|
-
has_rdoc: true
|
133
104
|
homepage: http://github.com/yob/db2fog
|
134
105
|
licenses: []
|
135
|
-
|
136
106
|
post_install_message:
|
137
|
-
rdoc_options:
|
107
|
+
rdoc_options:
|
138
108
|
- --title
|
139
109
|
- DB2Fog
|
140
110
|
- --line-numbers
|
141
|
-
require_paths:
|
111
|
+
require_paths:
|
142
112
|
- lib
|
143
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
113
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
144
114
|
none: false
|
145
|
-
requirements:
|
146
|
-
- -
|
147
|
-
- !ruby/object:Gem::Version
|
148
|
-
segments:
|
149
|
-
- 1
|
150
|
-
- 8
|
151
|
-
- 7
|
115
|
+
requirements:
|
116
|
+
- - ! '>='
|
117
|
+
- !ruby/object:Gem::Version
|
152
118
|
version: 1.8.7
|
153
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
119
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
154
120
|
none: false
|
155
|
-
requirements:
|
156
|
-
- -
|
157
|
-
- !ruby/object:Gem::Version
|
158
|
-
segments:
|
159
|
-
- 1
|
160
|
-
- 3
|
161
|
-
- 2
|
121
|
+
requirements:
|
122
|
+
- - ! '>='
|
123
|
+
- !ruby/object:Gem::Version
|
162
124
|
version: 1.3.2
|
163
125
|
requirements: []
|
164
|
-
|
165
126
|
rubyforge_project:
|
166
|
-
rubygems_version: 1.
|
127
|
+
rubygems_version: 1.8.10
|
167
128
|
signing_key:
|
168
129
|
specification_version: 3
|
169
|
-
summary: db2fog provides rake tasks for backing up and restoring your DB to cloud
|
130
|
+
summary: db2fog provides rake tasks for backing up and restoring your DB to cloud
|
131
|
+
storage providers
|
170
132
|
test_files: []
|
171
|
-
|