database_sanitizer 0.0.10 → 0.0.11

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