mysql_truck 0.5.5 → 0.5.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/lib/mysql_truck/loader.rb +51 -34
- data/lib/mysql_truck/version.rb +1 -1
- metadata +2 -2
data/lib/mysql_truck/loader.rb
CHANGED
@@ -27,61 +27,75 @@ module MysqlTruck
|
|
27
27
|
@time = Time.new(*backup_date_str.split("-"))
|
28
28
|
initialize_directories
|
29
29
|
|
30
|
-
puts "Download & gunzip backups"
|
31
|
-
puts "-------------------"
|
30
|
+
# puts "Download & gunzip backups"
|
31
|
+
# puts "-------------------"
|
32
32
|
|
33
33
|
|
34
|
-
@bucket.keys(:prefix => s3_path).each do |key|
|
35
|
-
|
36
|
-
next unless (filename = download_file(key))
|
34
|
+
# @bucket.keys(:prefix => s3_path).each do |key|
|
35
|
+
# next unless (filename = download_file(key))
|
37
36
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
end
|
37
|
+
# # gunzip file
|
38
|
+
# if tmp_path.join(filename).exist?
|
39
|
+
# print " - Inflating #{filename} ... "
|
40
|
+
# time = benchmark { `gunzip -f #{tmp_path.join(filename)}` }
|
41
|
+
# print "complete (#{formatted_time time}).\n"
|
42
|
+
# end
|
43
|
+
# end
|
45
44
|
|
46
45
|
# Load data
|
47
46
|
puts "\nLoading schema and data by table"
|
48
47
|
puts "--------------------------------"
|
49
|
-
|
50
|
-
files = Dir["#{tmp_path}
|
51
|
-
|
48
|
+
|
49
|
+
files = Dir["#{tmp_path}/*"]
|
50
|
+
tables = files.map { |f| File.basename(f, File.extname(f)).to_s }.uniq
|
51
|
+
total = tables.size
|
52
52
|
count = 0
|
53
53
|
|
54
|
-
# Find all
|
55
|
-
|
54
|
+
# Find all table names and process
|
55
|
+
tables.sort.each do |table|
|
56
56
|
count += 1
|
57
|
-
table = File.basename(file, ".no_index.sql")
|
58
|
-
|
59
57
|
puts "\nProcessing #{table} (#{count}/#{total})"
|
60
58
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
59
|
+
old_schema_file = tmp_path.join("#{table}.sql")
|
60
|
+
schema_file = tmp_path.join("#{table}.no_index.sql")
|
61
|
+
index_file = tmp_path.join("#{table}.indices.sql")
|
62
|
+
data_file = tmp_path.join("#{table}.data.sql")
|
63
|
+
csv_data_file = tmp_path.join("#{table}.csv")
|
64
|
+
|
65
|
+
|
66
|
+
if schema_file.exist?
|
67
|
+
print " - Loading schema: #{File.basename(schema_file)} ... "
|
68
|
+
execute_sql_file(table, backup_date_str, schema_file)
|
69
|
+
schema_file.delete
|
70
|
+
|
71
|
+
elsif old_schema_file.exist?
|
72
|
+
print " - Loading schema: #{File.basename(old_schema_file)} ... "
|
73
|
+
execute_sql_file(table, backup_date_str, old_schema_file)
|
74
|
+
old_schema_file.delete
|
75
|
+
|
76
|
+
else
|
77
|
+
puts "ERROR: no schema file!"
|
78
|
+
next
|
79
|
+
end
|
65
80
|
|
66
|
-
print " - Loading schema for #{table} ... "
|
67
|
-
execute_sql_file(table, backup_date_str, schema_file)
|
68
|
-
schema_file.delete if schema_file.exist?
|
69
81
|
|
70
82
|
if data_file.exist?
|
71
|
-
print " - Importing #{
|
83
|
+
print " - Importing #{File.basename(data_file)} ... "
|
72
84
|
execute_sql_file(table, backup_date_str, data_file)
|
85
|
+
data_file.delete
|
86
|
+
|
73
87
|
elsif csv_data_file.exist?
|
74
|
-
print " - Importing #{
|
75
|
-
import_csv_file(table, backup_date_str, csv_data_file)
|
88
|
+
print " - Importing #{File.basename(csv_data_file)} ... "
|
89
|
+
csv_data_file = import_csv_file(table, backup_date_str, csv_data_file)
|
90
|
+
File.delete(csv_data_file)
|
76
91
|
end
|
77
92
|
|
78
|
-
data_file.delete if data_file.exist?
|
79
|
-
|
80
93
|
if index_file.exist?
|
81
|
-
print " - Adding indices
|
94
|
+
print " - Adding indices: #{File.basename(index_file)} ... "
|
82
95
|
execute_sql_file(table, backup_date_str, index_file)
|
96
|
+
index_file.delete
|
83
97
|
end
|
84
|
-
|
98
|
+
|
85
99
|
end
|
86
100
|
|
87
101
|
puts "Backup loaded."
|
@@ -120,16 +134,19 @@ module MysqlTruck
|
|
120
134
|
end
|
121
135
|
|
122
136
|
print "complete (#{formatted_time time}).\n"
|
137
|
+
|
138
|
+
file_path
|
123
139
|
end
|
124
140
|
|
125
141
|
def download_file(key)
|
126
142
|
filename = File.basename(key.name)
|
127
143
|
|
128
144
|
unless should_download_file?(filename)
|
129
|
-
puts " [ SKIP ]"
|
130
145
|
return
|
131
146
|
end
|
132
147
|
|
148
|
+
puts "\n#{key}"
|
149
|
+
|
133
150
|
file = tmp_path.join(filename)
|
134
151
|
unzipped_file = tmp_path.join(file.basename(".gz"))
|
135
152
|
if !smartly? || (smartly? && !unzipped_file.exist?)
|
data/lib/mysql_truck/version.rb
CHANGED
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.5.
|
4
|
+
version: 0.5.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2012-12-
|
14
|
+
date: 2012-12-15 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: right_aws
|