tableflip 0.1.1 → 0.1.2
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 +7 -0
- data/VERSION +1 -1
- data/lib/tableflip/argument_parser.rb +4 -2
- data/lib/tableflip/executor.rb +8 -1
- data/lib/tableflip/strategy.rb +2 -0
- data/tableflip.gemspec +6 -5
- metadata +18 -30
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: b4067e5a60d3e7611c6dc4a0eefaf919e37513fe
|
4
|
+
data.tar.gz: fe3a5d6a9fed38605fbeba3a4c045d2b06e69797
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 3ebed47282841ca13f473397e38c29729ce32a9e73f4389cfd746a0caf0d7da7d93eefc4e0fceb25c723e07a29968eecb9025afee5644aee771ba03cc4f18182
|
7
|
+
data.tar.gz: 28f74cc3e1df870feaa433844aa7e4859547c32d4a8090faf35fb9449b86382b2e1c8e4c87754d86d3de38bebbe0bcf6f538e316ccb0eaf3e45222187d9a7d03
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.2
|
@@ -44,7 +44,9 @@ class Tableflip::ArgumentParser
|
|
44
44
|
parser.on("-a", "--all", "Track all tables") do |s|
|
45
45
|
strategy.tables << :__all__
|
46
46
|
end
|
47
|
-
|
47
|
+
parser.on("-i", "--insert", "Use INSERT IGNORE instead of REPLACE INTO") do
|
48
|
+
strategy.migrate_method = :insert
|
49
|
+
end
|
48
50
|
parser.on("-b", "--block=s", "Transfer data in blocks of N rows") do |s|
|
49
51
|
strategy.block_size = s.to_i
|
50
52
|
end
|
@@ -63,7 +65,7 @@ class Tableflip::ArgumentParser
|
|
63
65
|
parser.on("-o", "--target=s", "Set target environment") do |s|
|
64
66
|
strategy.target_env = s
|
65
67
|
end
|
66
|
-
parser.on("-m", "--migrate", "Migrate
|
68
|
+
parser.on("-m", "--migrate", "Migrate data from source to target") do
|
67
69
|
strategy.actions << :table_migrate
|
68
70
|
end
|
69
71
|
parser.on("-c", "--count", "Count number of records in source table") do
|
data/lib/tableflip/executor.rb
CHANGED
@@ -378,7 +378,14 @@ class Tableflip::Executor
|
|
378
378
|
]
|
379
379
|
end
|
380
380
|
|
381
|
-
|
381
|
+
if (values.any?)
|
382
|
+
case (@strategy.migrate_method)
|
383
|
+
when :insert
|
384
|
+
do_query(target_db, "INSERT IGONORE INTO `#{table}` (#{columns.collect { |c| "`#{c}`" }.join(',')}) VALUES #{values.join(',')}")
|
385
|
+
else
|
386
|
+
do_query(target_db, "REPLACE INTO `#{table}` (#{columns.collect { |c| "`#{c}`" }.join(',')}) VALUES #{values.join(',')}")
|
387
|
+
end
|
388
|
+
end
|
382
389
|
|
383
390
|
selected = values.length
|
384
391
|
migrated += values.length
|
data/lib/tableflip/strategy.rb
CHANGED
@@ -12,6 +12,7 @@ class Tableflip::Strategy
|
|
12
12
|
attr_accessor :exclude_columns
|
13
13
|
attr_accessor :fuzz_intensity
|
14
14
|
attr_accessor :message
|
15
|
+
attr_accessor :migrate_method
|
15
16
|
attr_accessor :persist
|
16
17
|
attr_accessor :source_env
|
17
18
|
attr_accessor :tables
|
@@ -28,6 +29,7 @@ class Tableflip::Strategy
|
|
28
29
|
@exclude_columns = [ ]
|
29
30
|
@fuzz_intensity = 1
|
30
31
|
@block_size = 10000
|
32
|
+
@migrate_method = :replace
|
31
33
|
|
32
34
|
yield(self) if (block_given?)
|
33
35
|
end
|
data/tableflip.gemspec
CHANGED
@@ -2,14 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
+
# stub: tableflip 0.1.2 ruby lib
|
5
6
|
|
6
7
|
Gem::Specification.new do |s|
|
7
8
|
s.name = "tableflip"
|
8
|
-
s.version = "0.1.
|
9
|
+
s.version = "0.1.2"
|
9
10
|
|
10
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
|
+
s.require_paths = ["lib"]
|
11
13
|
s.authors = ["Scott Tadman"]
|
12
|
-
s.date = "
|
14
|
+
s.date = "2016-06-06"
|
13
15
|
s.description = "Flips tables from one database to another"
|
14
16
|
s.email = "scott@twg.ca"
|
15
17
|
s.executables = ["tableflip"]
|
@@ -39,12 +41,11 @@ Gem::Specification.new do |s|
|
|
39
41
|
]
|
40
42
|
s.homepage = "http://github.com/twg/tableflip"
|
41
43
|
s.licenses = ["MIT"]
|
42
|
-
s.
|
43
|
-
s.rubygems_version = "1.8.23"
|
44
|
+
s.rubygems_version = "2.5.1"
|
44
45
|
s.summary = "MySQL Table Flipping System"
|
45
46
|
|
46
47
|
if s.respond_to? :specification_version then
|
47
|
-
s.specification_version =
|
48
|
+
s.specification_version = 4
|
48
49
|
|
49
50
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
50
51
|
s.add_runtime_dependency(%q<mysql2>, [">= 0"])
|
metadata
CHANGED
@@ -1,94 +1,83 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tableflip
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
5
|
-
prerelease:
|
4
|
+
version: 0.1.2
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Scott Tadman
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2016-06-06 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: mysql2
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: eventmachine
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - ">="
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - ">="
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: em-synchrony
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - ">="
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - ">="
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: bundler
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - ">="
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: 1.0.0
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - ">="
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: 1.0.0
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: jeweler
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
|
-
- -
|
73
|
+
- - ">="
|
84
74
|
- !ruby/object:Gem::Version
|
85
75
|
version: 1.8.4
|
86
76
|
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
|
-
- -
|
80
|
+
- - ">="
|
92
81
|
- !ruby/object:Gem::Version
|
93
82
|
version: 1.8.4
|
94
83
|
description: Flips tables from one database to another
|
@@ -100,7 +89,7 @@ extra_rdoc_files:
|
|
100
89
|
- LICENSE.txt
|
101
90
|
- README.md
|
102
91
|
files:
|
103
|
-
- .document
|
92
|
+
- ".document"
|
104
93
|
- Gemfile
|
105
94
|
- LICENSE.txt
|
106
95
|
- README.md
|
@@ -121,26 +110,25 @@ files:
|
|
121
110
|
homepage: http://github.com/twg/tableflip
|
122
111
|
licenses:
|
123
112
|
- MIT
|
113
|
+
metadata: {}
|
124
114
|
post_install_message:
|
125
115
|
rdoc_options: []
|
126
116
|
require_paths:
|
127
117
|
- lib
|
128
118
|
required_ruby_version: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
119
|
requirements:
|
131
|
-
- -
|
120
|
+
- - ">="
|
132
121
|
- !ruby/object:Gem::Version
|
133
122
|
version: '0'
|
134
123
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
135
|
-
none: false
|
136
124
|
requirements:
|
137
|
-
- -
|
125
|
+
- - ">="
|
138
126
|
- !ruby/object:Gem::Version
|
139
127
|
version: '0'
|
140
128
|
requirements: []
|
141
129
|
rubyforge_project:
|
142
|
-
rubygems_version:
|
130
|
+
rubygems_version: 2.5.1
|
143
131
|
signing_key:
|
144
|
-
specification_version:
|
132
|
+
specification_version: 4
|
145
133
|
summary: MySQL Table Flipping System
|
146
134
|
test_files: []
|