myreplicator 1.1.43 → 1.1.44

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.
@@ -119,7 +119,7 @@ module Myreplicator
119
119
  Kernel.p "===== metadata.export_type ====="
120
120
  Kernel.p metadata.export_type
121
121
  Kernel.p options
122
- #options = {:table => "actucast_appeal", :destination_schema => "public", :source_schema => "raw_sources"}
122
+ #options = {:table_name => "actucast_appeal", :destination_schema => "public", :source_schema => "raw_sources"}
123
123
  schema_check = Myreplicator::MysqlExporter.schema_changed?(:table => options[:table_name],
124
124
  :destination_schema => options[:destination_schema],
125
125
  :source_schema => options[:source_schema])
@@ -149,16 +149,14 @@ module Myreplicator
149
149
  Loader.cleanup metadata #Remove incremental file
150
150
  Kernel.p "===== Remove incremental file ====="
151
151
  end
152
- elsif exp.nightly_refresh && (exp.nightly_refresh_frequency != 0)
153
- if (Time.now() - exp.nightly_refresh_last_run) >= exp.nightly_refresh_frequency.minute
154
- Loader.clear_older_files metadata # clear old incremental files
155
- exp.nightly_refresh_last_run = Time.now().change(:min => 0)
156
- exp.save!
157
- sql = "TRUNCATE TABLE #{options[:db]}.#{options[:destination_schema]}.#{options[:table_name]};"
158
- Myreplicator::DB.exec_sql("vertica",sql)
159
- # run the export. The next time loader runs, it will load the file
160
- exp.export
161
- end
152
+ elsif exp.nightly_refresh && (exp.nightly_refresh_frequency != 0) && ((Time.now() - exp.nightly_refresh_last_run) >= exp.nightly_refresh_frequency.minute)
153
+ Loader.clear_older_files metadata # clear old incremental files
154
+ exp.nightly_refresh_last_run = Time.now().change(:min => 0)
155
+ exp.save!
156
+ sql = "TRUNCATE TABLE #{options[:db]}.#{options[:destination_schema]}.#{options[:table_name]};"
157
+ Myreplicator::DB.exec_sql("vertica",sql)
158
+ # run the export. The next time loader runs, it will load the file
159
+ exp.export
162
160
  elsif get_analyze_constraints(ops) > 0 # check for primary key/unique keys violations
163
161
  Kernel.p "===== DROP CURRENT TABLE ====="
164
162
  sql = "DROP TABLE IF EXISTS #{options[:db]}.#{options[:destination_schema]}.#{options[:table_name]} CASCADE;"
@@ -170,25 +168,31 @@ module Myreplicator
170
168
  options[:table] = temp_table
171
169
  Kernel.p "===== COPY TO TEMP TABLE #{temp_table} ====="
172
170
  vertica_copy options
173
- exp = Export.find(metadata.export_id)
174
- if exp.export_type == 'all'
175
- options.reverse_merge!(:temp_table => "#{temp_table}")
176
- options[:table] = options[:table_name]
177
- Kernel.p "===== DROP CURRENT TABLE ====="
178
- sql = "DROP TABLE IF EXISTS #{options[:db]}.#{options[:destination_schema]}.#{options[:table]} CASCADE;"
179
- Myreplicator::DB.exec_sql("vertica",sql)
180
- sql = "ALTER TABLE #{options[:db]}.#{options[:destination_schema]}.#{options[:temp_table]} RENAME TO \"#{options[:table]}\";"
181
- Kernel.p sql
182
- Myreplicator::DB.exec_sql("vertica",sql)
183
- elsif exp.export_type == 'incremental'
184
- options.reverse_merge!(:temp_table => "#{temp_table}")
185
- options[:table] = options[:table_name]
186
- Kernel.p "===== MERGE ====="
187
- vertica_merge options
188
- #drop the temp table
171
+ options.reverse_merge!(:temp_table => "#{temp_table}")
172
+ options[:table] = options[:table_name]
173
+ sql = "SELECT COUNT(*) FROM #{options[:db]}.#{options[:destination_schema]}.#{options[:temp_table]};"
174
+ result = Myreplicator::DB.exec_sql("vertica",sql)
175
+ #temporary fix for racing refresh cause by one worker doing loader for many export jobs. Better fix: each export job starts its own loader worker
176
+ if result.entries.first[:COUNT] == 0
189
177
  Kernel.p "===== DROP TEMP TABLE ====="
190
178
  sql = "DROP TABLE IF EXISTS #{options[:db]}.#{options[:destination_schema]}.#{temp_table} CASCADE;"
191
179
  Myreplicator::DB.exec_sql("vertica",sql)
180
+ else
181
+ if exp.export_type == 'all'
182
+ Kernel.p "===== DROP CURRENT TABLE ====="
183
+ sql = "DROP TABLE IF EXISTS #{options[:db]}.#{options[:destination_schema]}.#{options[:table]} CASCADE;"
184
+ Myreplicator::DB.exec_sql("vertica",sql)
185
+ sql = "ALTER TABLE #{options[:db]}.#{options[:destination_schema]}.#{options[:temp_table]} RENAME TO \"#{options[:table]}\";"
186
+ Kernel.p sql
187
+ Myreplicator::DB.exec_sql("vertica",sql)
188
+ elsif exp.export_type == 'incremental'
189
+ Kernel.p "===== MERGE ====="
190
+ vertica_merge options
191
+ #drop the temp table
192
+ Kernel.p "===== DROP TEMP TABLE ====="
193
+ sql = "DROP TABLE IF EXISTS #{options[:db]}.#{options[:destination_schema]}.#{temp_table} CASCADE;"
194
+ Myreplicator::DB.exec_sql("vertica",sql)
195
+ end
192
196
  end
193
197
  end
194
198
  end
@@ -1,3 +1,3 @@
1
1
  module Myreplicator
2
- VERSION = "1.1.43"
2
+ VERSION = "1.1.44"
3
3
  end
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.43
4
+ version: 1.1.44
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-05-29 00:00:00.000000000 Z
12
+ date: 2013-05-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -298,7 +298,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
298
298
  version: '0'
299
299
  segments:
300
300
  - 0
301
- hash: -1943174350631811103
301
+ hash: -1682626861292050553
302
302
  required_rubygems_version: !ruby/object:Gem::Requirement
303
303
  none: false
304
304
  requirements:
@@ -307,7 +307,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
307
307
  version: '0'
308
308
  segments:
309
309
  - 0
310
- hash: -1943174350631811103
310
+ hash: -1682626861292050553
311
311
  requirements: []
312
312
  rubyforge_project:
313
313
  rubygems_version: 1.8.24