mysql_truck 0.0.5 → 0.0.6

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/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