tapsoob 0.7.12 → 0.7.14

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
  SHA256:
3
- metadata.gz: bb1f0ec12a5b2c4add9d789368f7a46d143e4065b7828d2674735b913009e15a
4
- data.tar.gz: 89ab50fb4d02fac6c6efc403498d82e8f895bc7de48b2bd8130d4ff1a2756023
3
+ metadata.gz: c2dac10255fe54eed67a615eceac52ef21dc58e5652aacd754f334c5b678a2fa
4
+ data.tar.gz: a51cb604a0597e99828ae0f3015b54c6b8816baea04237946cb563e4b81d63ca
5
5
  SHA512:
6
- metadata.gz: 87dacb466fb4041ae0ac10062145fc24e59f70d3f3036b7f7e7fe3a671c7eb33f646201583ba243f73153ff06febecbfd1a9316af01d318518164f2bb32c7baa
7
- data.tar.gz: 742e89d4c8222594265f1f811a52935a125efd948bd1d356b86ae848ae59c6a18917c3d7ef95d999bd9116647d64ad30dc0023951c4cddc9157c81fdb8f22c19
6
+ metadata.gz: b93c99785aa3b9290142e5245184acb4f8a6721244536127391f94f592b3015f27ea236ddd5282254ee073636313d06b5371648f223d9a4d09c9ca3cb8fec7ec
7
+ data.tar.gz: 1705b7c0d5cbeb47aef0b3724d560251d72aab4621ea82ec11a8a7cd6ec4770d592af18f8ad6e0b98149055168e5f3adc939a478cd532444846895ec7f71848a
@@ -54,28 +54,30 @@ module Tapsoob
54
54
  STDERR.puts "Warning: Parallel mode not supported when reading from STDIN"
55
55
  end
56
56
 
57
- data = []
58
- STDIN.each_line { |line| data << JSON.parse(line, symbolize_names: true) }
59
-
60
- # import data
61
- data.each do |table|
57
+ STDIN.each_line do |line|
58
+ table = JSON.parse(line, symbolize_names: true)
62
59
  table_name = table[:table_name]
63
60
 
64
- # Truncate table if purge option is enabled
65
- if opts[:purge]
66
- db(database_url, opts)[table_name.to_sym].truncate
67
- end
61
+ begin
62
+ # Truncate table if purge option is enabled
63
+ if opts[:purge]
64
+ db(database_url, opts)[table_name.to_sym].truncate
65
+ end
68
66
 
69
- stream = Tapsoob::DataStream::Base.factory(db(database_url, opts), {
70
- table_name: table_name,
71
- chunksize: opts[:default_chunksize]
72
- }, { :"discard-identity" => opts[:"discard-identity"] || false, :purge => opts[:purge] || false, :debug => opts[:debug] })
67
+ stream = Tapsoob::DataStream::Base.factory(db(database_url, opts), {
68
+ table_name: table_name,
69
+ chunksize: opts[:default_chunksize]
70
+ }, { :"discard-identity" => opts[:"discard-identity"] || false, :purge => opts[:purge] || false, :debug => opts[:debug] })
73
71
 
74
- begin
75
72
  stream.import_rows(table)
73
+ rescue Sequel::DatabaseDisconnectError, Sequel::DatabaseConnectionError => e
74
+ # Connection dropped (e.g. MySQL wait_timeout); reconnect and retry once
75
+ STDERR.puts "Connection lost for #{table_name}, reconnecting... (#{e.message.lines.first.chomp})"
76
+ @db = nil
77
+ retry
76
78
  rescue Exception => e
77
- stream.log.debug e.message
78
- STDERR.puts "Error loading data in #{table_name} : #{e.message}"
79
+ Tapsoob.log.debug e.message
80
+ STDERR.puts "Error loading data in #{table_name} : #{e.message}\n#{e.backtrace.first(5).join("\n")}"
79
81
  end
80
82
  end
81
83
  end
@@ -1,4 +1,4 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  module Tapsoob
3
- VERSION = "0.7.12".freeze
3
+ VERSION = "0.7.14".freeze
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tapsoob
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.12
4
+ version: 0.7.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Félix Bellanger
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2026-06-11 00:00:00.000000000 Z
12
+ date: 2026-06-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sequel