myreplicator 1.1.52 → 1.1.53
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/exporter/mysql_exporter.rb +7 -3
- data/lib/exporter/sql_commands.rb +57 -9
- data/lib/loader/loader.rb +1 -1
- data/lib/myreplicator/version.rb +1 -1
- metadata +4 -4
@@ -122,7 +122,9 @@ module Myreplicator
|
|
122
122
|
:table => @export_obj.table_name,
|
123
123
|
:filepath => filepath,
|
124
124
|
:destination_schema => @export_obj.destination_schema,
|
125
|
-
:enclosed_by => Myreplicator.configs[@export_obj.source_schema]["enclosed_by"]
|
125
|
+
:enclosed_by => Myreplicator.configs[@export_obj.source_schema]["enclosed_by"],
|
126
|
+
:export_id => @export_obj.id
|
127
|
+
}
|
126
128
|
|
127
129
|
schema_status = Myreplicator::MysqlExporter.schema_changed?(options)
|
128
130
|
Kernel.p "===== schema_status ====="
|
@@ -132,14 +134,16 @@ module Myreplicator
|
|
132
134
|
else
|
133
135
|
options[:incremental_col] = @export_obj.incremental_column
|
134
136
|
options[:incremental_col_type] = @export_obj.incremental_column_type
|
135
|
-
#options[:incremental_val] = @export_obj.max_incremental_value
|
136
137
|
options[:export_type] = @export_obj.export_type
|
137
138
|
options[:incremental_val] = [@export_obj.destination_max_incremental_value, @export_obj.max_incremental_value].min
|
139
|
+
#options[:incremental_val] = @export_obj.max_incremental_value
|
138
140
|
end
|
139
141
|
|
140
142
|
#Kernel.p "===== incremental_export_into_outfile OPTIONS ====="
|
141
143
|
#Kernel.p options
|
142
|
-
cmd = SqlCommands.mysql_export_outfile(options)
|
144
|
+
cmd = SqlCommands.mysql_export_outfile(options)
|
145
|
+
#Kernel.p "===== incremental_export_into_outfile CMD ====="
|
146
|
+
#puts cmd
|
143
147
|
exporting_state_trans
|
144
148
|
puts "Exporting..."
|
145
149
|
result = execute_export(cmd, metadata)
|
@@ -112,16 +112,64 @@ module Myreplicator
|
|
112
112
|
puts cmd
|
113
113
|
return cmd
|
114
114
|
end
|
115
|
+
|
116
|
+
##
|
117
|
+
# exp:
|
118
|
+
# SELECT
|
119
|
+
# customer_id,firstname,REPLACE(UPPER(`lastname`), 'NULL', 'ABC'),email,..,REPLACE(`modified_date`, '0000-00-00','1900-01-01'),..
|
120
|
+
# FROM king.customer WHERE customer_id in ( 261085,348081,477336 );
|
121
|
+
##
|
122
|
+
|
123
|
+
def self.get_columns * args
|
124
|
+
options = args.extract_options!
|
125
|
+
#Kernel.p "===== GET COLUMNS OPTIONS ====="
|
126
|
+
#Kernel.p options
|
127
|
+
#
|
128
|
+
exp = Myreplicator::Export.find(options[:export_id])
|
129
|
+
#
|
130
|
+
mysql_schema = Myreplicator::Loader.mysql_table_definition(options)
|
131
|
+
mysql_schema_simple_form = Myreplicator::MysqlExporter.get_mysql_schema_rows mysql_schema
|
132
|
+
columns = Myreplicator::VerticaLoader.get_mysql_inserted_columns mysql_schema_simple_form
|
133
|
+
#Kernel.p "===== table's columns====="
|
134
|
+
#Kernel.p columns
|
135
|
+
|
136
|
+
json = JSON.parse(exp.removing_special_chars)
|
137
|
+
#Kernel.p exp.removing_special_chars
|
138
|
+
#Kernel.p json
|
139
|
+
result = []
|
140
|
+
columns.each do |column|
|
141
|
+
if !json[column].blank?
|
142
|
+
puts json[column]
|
143
|
+
replaces = json[column]
|
144
|
+
sql = ""
|
145
|
+
replaces.each do |k,v|
|
146
|
+
if sql.blank?
|
147
|
+
sql = "REPLACE(#{column}, '#{k}', '#{v}')"
|
148
|
+
else
|
149
|
+
sql = "REPLACE(#{sql}, '#{k}', '#{v}')"
|
150
|
+
end
|
151
|
+
#puts sql
|
152
|
+
end
|
153
|
+
result << sql
|
154
|
+
else
|
155
|
+
result << column
|
156
|
+
end
|
157
|
+
end
|
158
|
+
return result
|
159
|
+
end
|
115
160
|
|
116
161
|
##
|
117
162
|
# Mysql export data into outfile option
|
118
163
|
# Provided for tables that need special delimiters
|
119
164
|
##
|
120
165
|
|
121
|
-
def self.get_outfile_sql
|
122
|
-
|
123
|
-
Kernel.p
|
124
|
-
|
166
|
+
def self.get_outfile_sql *args
|
167
|
+
options = args.extract_options!
|
168
|
+
#Kernel.p "===== SELECT * INTO OUTFILE OPTIONS====="
|
169
|
+
#Kernel.p options
|
170
|
+
columns = get_columns options
|
171
|
+
sql = "SELECT #{columns.join(',')} INTO OUTFILE '#{options[:filepath]}' "
|
172
|
+
#sql = "SELECT * INTO OUTFILE '#{options[:filepath]}' "
|
125
173
|
|
126
174
|
if options[:enclosed_by].blank?
|
127
175
|
sql += " FIELDS TERMINATED BY '\\0' ESCAPED BY '' LINES TERMINATED BY ';~~;\n'"
|
@@ -155,17 +203,17 @@ module Myreplicator
|
|
155
203
|
# Location of the output file needs to have 777 perms
|
156
204
|
##
|
157
205
|
def self.mysql_export_outfile *args
|
158
|
-
|
159
|
-
|
206
|
+
Kernel.p "===== mysql_export_outfile OPTIONS ====="
|
207
|
+
|
160
208
|
options = args.extract_options!
|
161
|
-
|
209
|
+
Kernel.p options
|
162
210
|
options.reverse_merge! :flags => []
|
163
211
|
db = options[:source_schema]
|
164
212
|
|
165
213
|
# Database host when ssh'ed into the db server
|
166
214
|
db_host = "127.0.0.1"
|
167
|
-
|
168
|
-
|
215
|
+
Kernel.p "===== mysql_export_outfile ssh_configs ====="
|
216
|
+
Kernel.p ssh_configs(db)
|
169
217
|
if !ssh_configs(db)["ssh_db_host"].blank?
|
170
218
|
db_host = ssh_configs(db)["ssh_db_host"]
|
171
219
|
elsif !db_configs(db)["host"].blank?
|
data/lib/loader/loader.rb
CHANGED
data/lib/myreplicator/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: myreplicator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.53
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-07-
|
12
|
+
date: 2013-07-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -354,7 +354,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
354
354
|
version: '0'
|
355
355
|
segments:
|
356
356
|
- 0
|
357
|
-
hash:
|
357
|
+
hash: 2486983726368324823
|
358
358
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
359
359
|
none: false
|
360
360
|
requirements:
|
@@ -363,7 +363,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
363
363
|
version: '0'
|
364
364
|
segments:
|
365
365
|
- 0
|
366
|
-
hash:
|
366
|
+
hash: 2486983726368324823
|
367
367
|
requirements: []
|
368
368
|
rubyforge_project:
|
369
369
|
rubygems_version: 1.8.24
|