database_sanitizer 0.0.10 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 69dde27474c93f48e238ca9a48f969d64ce25c85
4
- data.tar.gz: 7f654cc3b0ee7a15b8017944663e7e6beddd87a5
3
+ metadata.gz: ddcfff1fe892484023111ceca111ae9e0b7cfc15
4
+ data.tar.gz: be4dfe4874735872815bbae6ba55fe959092f359
5
5
  SHA512:
6
- metadata.gz: 66849aa88cc35888f512a93d8a8043a795c0a10cc9050ffe6d0695788ed70eccb70617115e48752416f80aa547666b2eb2dc633431c15dbe4ba7d0e5b7ac0ce3
7
- data.tar.gz: 01e8f6eba5e2f27b668d5d4d9aa08137a19ce2a18f203dbfcbe4b5293b798fd7759c75eb1f7d50d372790583d4d104b9331bfd642deac2c1a8695d50f835f936
6
+ metadata.gz: e8751235e69d52bd02dc702a6a451e5c2ebdfa288a6e7f4a833428503afe9e59d613503a052fbe1fd67088cbb3378723814aa90dafa7eeb73d363898da560a34
7
+ data.tar.gz: e335a6f3adae02e04458793c7c0cd4f8dc430d23b3b91314c8b70afc67bc00ce85654688cf4d70e8d8907b3f5dec2cecac9b3fde6c05a83e96abc7af102547d2
@@ -1,3 +1,3 @@
1
1
  module DatabaseSanitizer
2
- VERSION = '0.0.10'
2
+ VERSION = '0.0.11'
3
3
  end
@@ -3,7 +3,7 @@ require 'active_record/comments'
3
3
  require 'progress'
4
4
 
5
5
  module DatabaseSanitizer
6
- CHUNK_SIZE = 500
6
+ CHUNK_SIZE = (ENV['CHUNK_SIZE'] || "1000").to_i
7
7
  class Source < ActiveRecord::Base
8
8
  end
9
9
  end
@@ -63,20 +63,22 @@ module DatabaseSanitizer
63
63
 
64
64
  tables.with_progress('Exporting').each do |table|
65
65
  q_table = dest.quote_table_name table
66
- query = "SELECT * FROM #{q_table} LIMIT #{CHUNK_SIZE} OFFSET "
66
+ s_table = table.to_sym
67
+ sel_query = "SELECT * FROM #{q_table} LIMIT #{CHUNK_SIZE} OFFSET "
67
68
  get_chunks(table).times_with_progress(table.rjust max_tbl_name_len) do |chunk_i|
68
69
  offset = chunk_i * CHUNK_SIZE
69
- result = src.exec_query query + offset.to_s
70
+ result = src.exec_query sel_query + offset.to_s
70
71
  cols = result.columns.map { |col| dest.quote_column_name col }.join ','
71
- dest.transaction do
72
- result.rows.with_progress('batch').each_with_index do |src_row, row_i|
73
- values = result.columns.each_with_index.map do |col, col_i|
74
- transformer = transformers[table.to_sym][col.to_sym]
75
- dest.quote transformer ? transformer.(offset + row_i, src_row[col_i]) : src_row[col_i]
76
- end
77
- dest.insert_sql "INSERT INTO #{q_table} (#{cols}) VALUES (#{values.join ','})"
72
+ ins_query_part = "INSERT INTO #{q_table} (#{cols}) VALUES ("
73
+ ins_query = StringIO.new
74
+ result.rows.each_with_index do |src_row, row_i|
75
+ values = result.columns.each_with_index.map do |col, col_i|
76
+ transformer = transformers[s_table][col.to_sym]
77
+ dest.quote transformer ? transformer.(offset + row_i, src_row[col_i]) : src_row[col_i]
78
78
  end
79
+ ins_query << ins_query_part << values.join(',') << '); '
79
80
  end
81
+ dest.exec_query ins_query.string
80
82
  end
81
83
  end
82
84
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: database_sanitizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: 0.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marton Somogyi