mysql_truck 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
data/bin/mysql_truck CHANGED
@@ -49,7 +49,7 @@ parser = OptionParser.new do |opts|
49
49
  end
50
50
 
51
51
  opts.on("--bucket-dir BUCKET_DIR", "S3 bucket dir [defaults to database name]") do |dir|
52
- options[:bucket_dir] = key
52
+ options[:bucket_dir] = dir
53
53
  end
54
54
 
55
55
  opts.on("--dump-dir DIR", "Directory where the mysql dumps will go before upload/download.", "Defaults to /tmp") do |dir|
data/lib/mysql_truck.rb CHANGED
@@ -178,15 +178,7 @@ module MysqlTruck
178
178
 
179
179
  puts "Downloading backups ..."
180
180
  @bucket.keys(:prefix => prefix).each do |key|
181
- filename = File.basename(key.name)
182
-
183
- next if filename.match(/\.csv\.gz$/) && skip_tables.include?(File.basename(filename, ".csv.gz"))
184
-
185
- print " - Downloading #{filename} ... "
186
- File.open(tmp_path.join(filename), "wb") do |f|
187
- f.write key.get
188
- end
189
- print "complete.\n"
181
+ next unless (filename = download_file(key))
190
182
 
191
183
  # gunzip file
192
184
  print " -- Inflating #{filename} ... "
@@ -214,10 +206,33 @@ module MysqlTruck
214
206
  end
215
207
 
216
208
  puts "Backup loaded."
209
+
210
+ rescue Exception => e
211
+ puts e.message
212
+ puts e.backtrace.join("\n")
217
213
  ensure
218
214
  remove_directories
219
215
  end
220
216
 
217
+ def download_file(key)
218
+ filename = File.basename(key.name)
219
+ print " - Downloading #{filename} ... "
220
+
221
+ if filename.match(/\.csv\.gz$/) && skip_tables.include?(File.basename(filename, ".csv.gz"))
222
+ puts " [ Skipping ]"
223
+ return false
224
+ end
225
+
226
+ File.open(tmp_path.join(filename), "wb") do |f|
227
+ @bucket.s3.interface.get(@bucket.name, key.name) do |chunk|
228
+ f.write chunk
229
+ end
230
+ end
231
+
232
+ print "complete.\n"
233
+ filename
234
+ end
235
+
221
236
  # Get a list of backups stored on S3.
222
237
  #
223
238
  # Returns an array of s3 paths that look like:
@@ -1,3 +1,3 @@
1
1
  module MysqlTruck
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mysql_truck
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,12 +10,12 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2011-09-16 00:00:00.000000000 -07:00
13
+ date: 2011-09-20 00:00:00.000000000 -07:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: right_aws
18
- requirement: &2164477260 !ruby/object:Gem::Requirement
18
+ requirement: &2160179560 !ruby/object:Gem::Requirement
19
19
  none: false
20
20
  requirements:
21
21
  - - ! '>='
@@ -23,7 +23,7 @@ dependencies:
23
23
  version: '0'
24
24
  type: :runtime
25
25
  prerelease: false
26
- version_requirements: *2164477260
26
+ version_requirements: *2160179560
27
27
  description: Mysql database backup tool. Dumps/Loads to/from S3.
28
28
  email:
29
29
  - peter@paydrotalks.com