tableflip 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
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 tables to environment") do
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
@@ -378,7 +378,14 @@ class Tableflip::Executor
378
378
  ]
379
379
  end
380
380
 
381
- do_query(target_db, "REPLACE INTO `#{table}` (#{columns.collect { |c| "`#{c}`" }.join(',')}) VALUES #{values.join(',')}")
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
@@ -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
@@ -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.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 = "2013-07-29"
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.require_paths = ["lib"]
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 = 3
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.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: 2013-07-29 00:00:00.000000000 Z
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: 1.8.23
130
+ rubygems_version: 2.5.1
143
131
  signing_key:
144
- specification_version: 3
132
+ specification_version: 4
145
133
  summary: MySQL Table Flipping System
146
134
  test_files: []