db_transformer 0.1.2 → 0.1.3
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 +4 -4
- data/Gemfile.lock +3 -1
- data/db_transformer.gemspec +1 -0
- data/lib/db_transformer/synchronizer.rb +14 -2
- data/lib/db_transformer/version.rb +1 -1
- data/lib/db_transformer.rb +1 -0
- metadata +15 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8eb35d534d2b34d0bc42c19ff1e191fc7000dc1f08af5f9ed81f263413f0db2e
|
4
|
+
data.tar.gz: 7e98aa240150ac159c6fb96715b3ee36a22eab9b44fdbaf2d1007e7789c6eb83
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d4b8aae519e2953538ed23b150dd4221f995181eb99e88e3d70e4eb588b26c3b5e98c04a91ccfbaf8b847d17454004941b89dc7d086e05788845f2da63325723
|
7
|
+
data.tar.gz: ecf6dd8ad95a8b587661ce298e66c2a4e6fe03a23181d51d51074c62c9a275a7a49c430333c26f3210b6673f16c862d2c46477c437ba3f94dc78654b1a11411b
|
data/Gemfile.lock
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
db_transformer (0.1.
|
4
|
+
db_transformer (0.1.2)
|
5
5
|
faker
|
6
6
|
mysql2 (~> 0.5.0)
|
7
|
+
parallel (~> 1.22)
|
7
8
|
sequel (~> 5.56)
|
8
9
|
thor (~> 1.2)
|
9
10
|
|
@@ -17,6 +18,7 @@ GEM
|
|
17
18
|
i18n (1.8.11)
|
18
19
|
concurrent-ruby (~> 1.0)
|
19
20
|
mysql2 (0.5.4)
|
21
|
+
parallel (1.22.1)
|
20
22
|
rake (13.0.6)
|
21
23
|
rspec (3.11.0)
|
22
24
|
rspec-core (~> 3.11.0)
|
data/db_transformer.gemspec
CHANGED
@@ -33,6 +33,7 @@ Gem::Specification.new do |spec|
|
|
33
33
|
spec.add_dependency 'mysql2', "~> 0.5.0"
|
34
34
|
spec.add_dependency 'sequel', '~> 5.56'
|
35
35
|
spec.add_dependency 'thor', '~> 1.2'
|
36
|
+
spec.add_dependency 'parallel', '~> 1.22'
|
36
37
|
|
37
38
|
# For more information and examples about making a new gem, checkout our
|
38
39
|
# guide at: https://bundler.io/guides/creating_gem.html
|
@@ -10,8 +10,6 @@ module DbTransformer
|
|
10
10
|
destination_database_client.run('SET foreign_key_checks = 0;')
|
11
11
|
|
12
12
|
tables.each do |table_name|
|
13
|
-
logger.info("Start copying `#{table_name}`")
|
14
|
-
|
15
13
|
if @settings.dig('destination', 'options', 'force_replace')
|
16
14
|
destination_database_client.run("DROP TABLE IF EXISTS #{table_name}")
|
17
15
|
end
|
@@ -19,6 +17,12 @@ module DbTransformer
|
|
19
17
|
create_table_query = source_database_client.fetch('SHOW CREATE TABLE ?', table_name).first[:'Create Table']
|
20
18
|
create_table_query = create_table_query.gsub('CREATE TABLE', 'CREATE TABLE IF NOT EXISTS')
|
21
19
|
destination_database_client.run(create_table_query)
|
20
|
+
end
|
21
|
+
|
22
|
+
Parallel.each(tables, in_threads: [source_database_max_connection, destination_database_max_connection].min) do |table_name|
|
23
|
+
destination_database_client.run('SET foreign_key_checks = 0;')
|
24
|
+
|
25
|
+
logger.info("Start copying `#{table_name}`")
|
22
26
|
|
23
27
|
offset = 0
|
24
28
|
loop do
|
@@ -72,6 +76,14 @@ module DbTransformer
|
|
72
76
|
@destination_database_settings ||= @settings['destination'].reject { |k, _| k == 'options' }
|
73
77
|
end
|
74
78
|
|
79
|
+
def source_database_max_connection
|
80
|
+
@settings['source']['max_connections'] || 4
|
81
|
+
end
|
82
|
+
|
83
|
+
def destination_database_max_connection
|
84
|
+
@settings['destination']['max_connections'] || 4
|
85
|
+
end
|
86
|
+
|
75
87
|
def rules
|
76
88
|
@settings['rules']
|
77
89
|
end
|
data/lib/db_transformer.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: db_transformer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tomoki Ichikawa
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '1.2'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: parallel
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.22'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.22'
|
69
83
|
description: ''
|
70
84
|
email:
|
71
85
|
- ichikawa@1060ki.com
|