flydata 0.1.12 → 0.1.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Gemfile +17 -18
- data/Gemfile.lock +68 -71
- data/VERSION +1 -1
- data/flydata.gemspec +58 -59
- data/lib/flydata/command/sync.rb +3 -1
- data/lib/flydata/fluent-plugins/mysql/alter_table_query_handler.rb +12 -13
- data/lib/flydata/fluent-plugins/mysql/binlog_query_dispatcher.rb +2 -1
- data/lib/flydata/fluent-plugins/mysql/binlog_record_handler.rb +7 -3
- data/lib/flydata/fluent-plugins/mysql/ddl_query_handler.rb +22 -0
- data/lib/flydata/parser/mysql/mysql_alter_table.treetop +27 -2
- data/lib/flydata/table_def/redshift_table_def.rb +30 -16
- data/spec/flydata/fluent-plugins/in_mysql_binlog_flydata_spec.rb +8 -9
- data/spec/flydata/parser/mysql/alter_table_parser_spec.rb +54 -0
- data/spec/flydata/table_def/redshift_table_def_spec.rb +130 -0
- metadata +161 -117
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 27e7790138861ddd0365bc10c4e54f2056422f38
|
4
|
+
data.tar.gz: aed30d2c9fec66feb6c8f81494bb094b0e4d18cb
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: fe887c1c0ba2f691dab8fd7bb0b6cc52b7f6491c77e379b2885de1eed9e3e2bde3e21193ca86e3d7c74246a643f6e6fff06d138f6faba7f3cd88772561e4a775
|
7
|
+
data.tar.gz: f6025778c94470895a1d030a2898b4d5d7bf4679a2c3b5ab3c2bc1cd670949c1839b123526511a27fef4430a6bc90c4f3e4f108fc090b8bd426c94dc9b05de94
|
data/Gemfile
CHANGED
@@ -1,29 +1,28 @@
|
|
1
1
|
source "http://rubygems.org"
|
2
2
|
source "https://rubygems.flydata.com"
|
3
3
|
|
4
|
-
gem "rest-client",
|
5
|
-
gem "i18n",
|
6
|
-
gem "activesupport",
|
7
|
-
gem "json",
|
8
|
-
gem "highline",
|
4
|
+
gem "rest-client", '~> 1.6', '>= 1.6.7'
|
5
|
+
gem "i18n", '~> 0.6', '>= 0.6.5'
|
6
|
+
gem "activesupport", '~> 4.0', '>= 4.0.0'
|
7
|
+
gem "json", '~> 1.8', '>= 1.8.0'
|
8
|
+
gem "highline", '~> 1.6', '>= 1.6.19'
|
9
9
|
gem "fluentd", "0.10.46"
|
10
|
-
gem "ruby-binlog",
|
11
|
-
gem "fluent-plugin-mysql-binlog",
|
12
|
-
gem "mysql2",
|
13
|
-
gem "slop"
|
14
|
-
gem "treetop"
|
10
|
+
gem "ruby-binlog", '~> 1.0', '>= 1.0.1'
|
11
|
+
gem "fluent-plugin-mysql-binlog", '~> 0.0', '>= 0.0.2'
|
12
|
+
gem "mysql2", '~> 0.3', '>= 0.3.11'
|
13
|
+
gem "slop", '~> 3.4', '>= 3.4.6'
|
14
|
+
gem "treetop", '~> 1.5', '>= 1.5.3'
|
15
15
|
|
16
16
|
group :development do
|
17
|
-
gem "
|
18
|
-
gem "jeweler"
|
17
|
+
gem "jeweler", '~> 1.8', '>= 1.8.8'
|
19
18
|
gem "rspec", '~> 3.0'
|
20
19
|
#gem "autotest"
|
21
20
|
#gem "autotest-standalone"
|
22
21
|
#gem "autotest-notification"
|
23
|
-
gem 'timecop'
|
24
|
-
gem "sqlite3"
|
25
|
-
gem 'ruby-prof'
|
26
|
-
gem 'activemodel', '~> 4.0.0'
|
27
|
-
gem 'activerecord', '~> 4.0.0'
|
28
|
-
gem 'protected_attributes'
|
22
|
+
gem 'timecop', '~> 0.7', '>= 0.7.1'
|
23
|
+
gem "sqlite3", '~> 0.1', '>= 0.1.1'
|
24
|
+
gem 'ruby-prof', '~> 0.15', '>= 0.15.1'
|
25
|
+
gem 'activemodel', '~> 4.0', '>= 4.0.0'
|
26
|
+
gem 'activerecord', '~> 4.0', '>= 4.0.0'
|
27
|
+
gem 'protected_attributes', '~> 1.0', '>= 1.0.8'
|
29
28
|
end
|
data/Gemfile.lock
CHANGED
@@ -2,29 +2,27 @@ GEM
|
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
remote: https://rubygems.flydata.com/
|
4
4
|
specs:
|
5
|
-
activemodel (4.
|
6
|
-
activesupport (= 4.
|
7
|
-
builder (~> 3.1
|
8
|
-
activerecord (4.
|
9
|
-
activemodel (= 4.
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
minitest (~> 4.2)
|
17
|
-
multi_json (~> 1.3)
|
5
|
+
activemodel (4.1.4)
|
6
|
+
activesupport (= 4.1.4)
|
7
|
+
builder (~> 3.1)
|
8
|
+
activerecord (4.1.4)
|
9
|
+
activemodel (= 4.1.4)
|
10
|
+
activesupport (= 4.1.4)
|
11
|
+
arel (~> 5.0.0)
|
12
|
+
activesupport (4.1.4)
|
13
|
+
i18n (~> 0.6, >= 0.6.9)
|
14
|
+
json (~> 1.7, >= 1.7.7)
|
15
|
+
minitest (~> 5.1)
|
18
16
|
thread_safe (~> 0.1)
|
19
|
-
tzinfo (~>
|
20
|
-
addressable (2.3.
|
21
|
-
arel (
|
22
|
-
|
23
|
-
|
24
|
-
cool.io (1.2.3)
|
17
|
+
tzinfo (~> 1.1)
|
18
|
+
addressable (2.3.6)
|
19
|
+
arel (5.0.1.20140414130214)
|
20
|
+
builder (3.2.2)
|
21
|
+
cool.io (1.2.4)
|
25
22
|
diff-lcs (1.2.5)
|
26
|
-
faraday (0.8.
|
23
|
+
faraday (0.8.9)
|
27
24
|
multipart-post (~> 1.2.0)
|
25
|
+
ffi (1.9.3)
|
28
26
|
fluent-plugin-mysql-binlog (0.0.2)
|
29
27
|
activesupport
|
30
28
|
fluentd
|
@@ -36,7 +34,7 @@ GEM
|
|
36
34
|
msgpack (>= 0.4.4, < 0.6.0, != 0.5.3, != 0.5.2, != 0.5.1, != 0.5.0)
|
37
35
|
sigdump (~> 0.2.2)
|
38
36
|
yajl-ruby (~> 1.0)
|
39
|
-
git (1.2.
|
37
|
+
git (1.2.8)
|
40
38
|
github_api (0.10.1)
|
41
39
|
addressable
|
42
40
|
faraday (~> 0.8.1)
|
@@ -44,11 +42,10 @@ GEM
|
|
44
42
|
multi_json (~> 1.4)
|
45
43
|
nokogiri (~> 1.5.2)
|
46
44
|
oauth2
|
47
|
-
hashie (2.0
|
48
|
-
highline (1.6.
|
45
|
+
hashie (3.2.0)
|
46
|
+
highline (1.6.21)
|
49
47
|
http_parser.rb (0.6.0)
|
50
|
-
|
51
|
-
i18n (0.6.5)
|
48
|
+
i18n (0.6.11)
|
52
49
|
jeweler (1.8.8)
|
53
50
|
builder
|
54
51
|
bundler (~> 1.0)
|
@@ -59,80 +56,80 @@ GEM
|
|
59
56
|
rake
|
60
57
|
rdoc
|
61
58
|
json (1.8.1)
|
62
|
-
jwt (0.
|
63
|
-
multi_json (>= 1.5)
|
59
|
+
jwt (1.0.0)
|
64
60
|
kodama (0.1.1)
|
65
61
|
ruby-binlog (>= 0.1.9)
|
66
|
-
mime-types (
|
67
|
-
minitest (4.
|
62
|
+
mime-types (2.3)
|
63
|
+
minitest (5.4.0)
|
68
64
|
msgpack (0.5.8)
|
69
|
-
multi_json (1.
|
65
|
+
multi_json (1.10.1)
|
70
66
|
multi_xml (0.5.5)
|
71
67
|
multipart-post (1.2.0)
|
72
|
-
mysql2 (0.3.
|
68
|
+
mysql2 (0.3.16)
|
69
|
+
netrc (0.7.7)
|
73
70
|
nokogiri (1.5.10)
|
74
|
-
oauth2 (0.
|
75
|
-
faraday (
|
76
|
-
|
77
|
-
|
78
|
-
multi_json (~> 1.0)
|
71
|
+
oauth2 (1.0.0)
|
72
|
+
faraday (>= 0.8, < 0.10)
|
73
|
+
jwt (~> 1.0)
|
74
|
+
multi_json (~> 1.3)
|
79
75
|
multi_xml (~> 0.5)
|
80
76
|
rack (~> 1.2)
|
81
77
|
polyglot (0.3.5)
|
82
|
-
protected_attributes (1.0.
|
83
|
-
activemodel (>= 4.0.
|
78
|
+
protected_attributes (1.0.8)
|
79
|
+
activemodel (>= 4.0.1, < 5.0)
|
84
80
|
rack (1.5.2)
|
85
|
-
rake (10.
|
86
|
-
rdoc (4.
|
81
|
+
rake (10.3.2)
|
82
|
+
rdoc (4.1.1)
|
87
83
|
json (~> 1.4)
|
88
|
-
rest-client (1.
|
89
|
-
mime-types (>= 1.16)
|
84
|
+
rest-client (1.7.2)
|
85
|
+
mime-types (>= 1.16, < 3.0)
|
86
|
+
netrc (~> 0.7)
|
90
87
|
rspec (3.0.0)
|
91
88
|
rspec-core (~> 3.0.0)
|
92
89
|
rspec-expectations (~> 3.0.0)
|
93
90
|
rspec-mocks (~> 3.0.0)
|
94
|
-
rspec-core (3.0.
|
91
|
+
rspec-core (3.0.3)
|
95
92
|
rspec-support (~> 3.0.0)
|
96
|
-
rspec-expectations (3.0.
|
93
|
+
rspec-expectations (3.0.3)
|
97
94
|
diff-lcs (>= 1.2.0, < 2.0)
|
98
95
|
rspec-support (~> 3.0.0)
|
99
|
-
rspec-mocks (3.0.
|
96
|
+
rspec-mocks (3.0.3)
|
100
97
|
rspec-support (~> 3.0.0)
|
101
|
-
rspec-support (3.0.
|
98
|
+
rspec-support (3.0.3)
|
102
99
|
ruby-binlog (1.0.1)
|
103
|
-
ruby-prof (0.
|
100
|
+
ruby-prof (0.15.1)
|
104
101
|
sigdump (0.2.2)
|
105
|
-
slop (3.
|
106
|
-
sqlite3 (1.
|
107
|
-
|
108
|
-
|
102
|
+
slop (3.6.0)
|
103
|
+
sqlite3 (0.1.1)
|
104
|
+
ffi (>= 0.6.3)
|
105
|
+
thread_safe (0.3.4)
|
109
106
|
timecop (0.7.1)
|
110
107
|
treetop (1.5.3)
|
111
108
|
polyglot (~> 0.3)
|
112
|
-
tzinfo (
|
113
|
-
|
109
|
+
tzinfo (1.2.1)
|
110
|
+
thread_safe (~> 0.1)
|
111
|
+
yajl-ruby (1.2.1)
|
114
112
|
|
115
113
|
PLATFORMS
|
116
114
|
ruby
|
117
115
|
|
118
116
|
DEPENDENCIES
|
119
|
-
activemodel (~> 4.0.0)
|
120
|
-
activerecord (~> 4.0.0)
|
121
|
-
activesupport (~> 4.0.0)
|
122
|
-
|
123
|
-
fluent-plugin-mysql-binlog (~> 0.0.2)
|
117
|
+
activemodel (~> 4.0, >= 4.0.0)
|
118
|
+
activerecord (~> 4.0, >= 4.0.0)
|
119
|
+
activesupport (~> 4.0, >= 4.0.0)
|
120
|
+
fluent-plugin-mysql-binlog (~> 0.0, >= 0.0.2)
|
124
121
|
fluentd (= 0.10.46)
|
125
|
-
highline (~> 1.6.19)
|
126
|
-
i18n (~> 0.6.5)
|
127
|
-
jeweler
|
128
|
-
json (~> 1.8.0)
|
129
|
-
mysql2 (~> 0.3.11)
|
130
|
-
protected_attributes
|
131
|
-
rest-client (~> 1.6.7)
|
122
|
+
highline (~> 1.6, >= 1.6.19)
|
123
|
+
i18n (~> 0.6, >= 0.6.5)
|
124
|
+
jeweler (~> 1.8, >= 1.8.8)
|
125
|
+
json (~> 1.8, >= 1.8.0)
|
126
|
+
mysql2 (~> 0.3, >= 0.3.11)
|
127
|
+
protected_attributes (~> 1.0, >= 1.0.8)
|
128
|
+
rest-client (~> 1.6, >= 1.6.7)
|
132
129
|
rspec (~> 3.0)
|
133
|
-
ruby-binlog (>= 1.0.1)
|
134
|
-
ruby-prof
|
135
|
-
slop
|
136
|
-
sqlite3
|
137
|
-
timecop
|
138
|
-
treetop
|
130
|
+
ruby-binlog (~> 1.0, >= 1.0.1)
|
131
|
+
ruby-prof (~> 0.15, >= 0.15.1)
|
132
|
+
slop (~> 3.4, >= 3.4.6)
|
133
|
+
sqlite3 (~> 0.1, >= 0.1.1)
|
134
|
+
timecop (~> 0.7, >= 0.7.1)
|
135
|
+
treetop (~> 1.5, >= 1.5.3)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.13
|
data/flydata.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: flydata 0.1.13 ruby lib
|
5
6
|
|
6
7
|
Gem::Specification.new do |s|
|
7
8
|
s.name = "flydata"
|
8
|
-
s.version = "0.1.
|
9
|
+
s.version = "0.1.13"
|
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 = ["Koichi Fujikawa"]
|
12
|
-
s.date = "2014-
|
14
|
+
s.date = "2014-08-05"
|
13
15
|
s.description = "FlyData Command Line Interface"
|
14
16
|
s.email = "sysadmin@flydata.co"
|
15
17
|
s.executables = ["fdmysqldump", "flydata"]
|
@@ -58,6 +60,7 @@ Gem::Specification.new do |s|
|
|
58
60
|
"lib/flydata/fluent-plugins/mysql/binlog_record_dispatcher.rb",
|
59
61
|
"lib/flydata/fluent-plugins/mysql/binlog_record_handler.rb",
|
60
62
|
"lib/flydata/fluent-plugins/mysql/context.rb",
|
63
|
+
"lib/flydata/fluent-plugins/mysql/ddl_query_handler.rb",
|
61
64
|
"lib/flydata/fluent-plugins/mysql/dml_record_handler.rb",
|
62
65
|
"lib/flydata/fluent-plugins/out_forward_ssl.rb",
|
63
66
|
"lib/flydata/fluent-plugins/preference.rb",
|
@@ -103,77 +106,73 @@ Gem::Specification.new do |s|
|
|
103
106
|
]
|
104
107
|
s.homepage = "http://flydata.co/"
|
105
108
|
s.licenses = ["All right reserved."]
|
106
|
-
s.
|
107
|
-
s.rubygems_version = "1.8.28"
|
109
|
+
s.rubygems_version = "2.2.2"
|
108
110
|
s.summary = "FlyData CLI"
|
109
111
|
|
110
112
|
if s.respond_to? :specification_version then
|
111
|
-
s.specification_version =
|
113
|
+
s.specification_version = 4
|
112
114
|
|
113
115
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
114
|
-
s.add_runtime_dependency(%q<rest-client>, ["
|
115
|
-
s.add_runtime_dependency(%q<i18n>, ["
|
116
|
-
s.add_runtime_dependency(%q<activesupport>, ["
|
117
|
-
s.add_runtime_dependency(%q<json>, ["
|
118
|
-
s.add_runtime_dependency(%q<highline>, ["
|
116
|
+
s.add_runtime_dependency(%q<rest-client>, [">= 1.6.7", "~> 1.6"])
|
117
|
+
s.add_runtime_dependency(%q<i18n>, [">= 0.6.5", "~> 0.6"])
|
118
|
+
s.add_runtime_dependency(%q<activesupport>, [">= 4.0.0", "~> 4.0"])
|
119
|
+
s.add_runtime_dependency(%q<json>, [">= 1.8.0", "~> 1.8"])
|
120
|
+
s.add_runtime_dependency(%q<highline>, [">= 1.6.19", "~> 1.6"])
|
119
121
|
s.add_runtime_dependency(%q<fluentd>, ["= 0.10.46"])
|
120
|
-
s.add_runtime_dependency(%q<ruby-binlog>, [">= 1.0.1"])
|
121
|
-
s.add_runtime_dependency(%q<fluent-plugin-mysql-binlog>, ["
|
122
|
-
s.add_runtime_dependency(%q<mysql2>, ["
|
123
|
-
s.add_runtime_dependency(%q<slop>, [">=
|
124
|
-
s.add_runtime_dependency(%q<treetop>, [">=
|
125
|
-
s.add_development_dependency(%q<
|
126
|
-
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
122
|
+
s.add_runtime_dependency(%q<ruby-binlog>, [">= 1.0.1", "~> 1.0"])
|
123
|
+
s.add_runtime_dependency(%q<fluent-plugin-mysql-binlog>, [">= 0.0.2", "~> 0.0"])
|
124
|
+
s.add_runtime_dependency(%q<mysql2>, [">= 0.3.11", "~> 0.3"])
|
125
|
+
s.add_runtime_dependency(%q<slop>, [">= 3.4.6", "~> 3.4"])
|
126
|
+
s.add_runtime_dependency(%q<treetop>, [">= 1.5.3", "~> 1.5"])
|
127
|
+
s.add_development_dependency(%q<jeweler>, [">= 1.8.8", "~> 1.8"])
|
127
128
|
s.add_development_dependency(%q<rspec>, ["~> 3.0"])
|
128
|
-
s.add_development_dependency(%q<timecop>, [">= 0"])
|
129
|
-
s.add_development_dependency(%q<sqlite3>, [">= 0"])
|
130
|
-
s.add_development_dependency(%q<ruby-prof>, [">= 0"])
|
131
|
-
s.add_development_dependency(%q<activemodel>, ["
|
132
|
-
s.add_development_dependency(%q<activerecord>, ["
|
133
|
-
s.add_development_dependency(%q<protected_attributes>, [">= 0"])
|
129
|
+
s.add_development_dependency(%q<timecop>, [">= 0.7.1", "~> 0.7"])
|
130
|
+
s.add_development_dependency(%q<sqlite3>, [">= 0.1.1", "~> 0.1"])
|
131
|
+
s.add_development_dependency(%q<ruby-prof>, [">= 0.15.1", "~> 0.15"])
|
132
|
+
s.add_development_dependency(%q<activemodel>, [">= 4.0.0", "~> 4.0"])
|
133
|
+
s.add_development_dependency(%q<activerecord>, [">= 4.0.0", "~> 4.0"])
|
134
|
+
s.add_development_dependency(%q<protected_attributes>, [">= 1.0.8", "~> 1.0"])
|
134
135
|
else
|
135
|
-
s.add_dependency(%q<rest-client>, ["
|
136
|
-
s.add_dependency(%q<i18n>, ["
|
137
|
-
s.add_dependency(%q<activesupport>, ["
|
138
|
-
s.add_dependency(%q<json>, ["
|
139
|
-
s.add_dependency(%q<highline>, ["
|
136
|
+
s.add_dependency(%q<rest-client>, [">= 1.6.7", "~> 1.6"])
|
137
|
+
s.add_dependency(%q<i18n>, [">= 0.6.5", "~> 0.6"])
|
138
|
+
s.add_dependency(%q<activesupport>, [">= 4.0.0", "~> 4.0"])
|
139
|
+
s.add_dependency(%q<json>, [">= 1.8.0", "~> 1.8"])
|
140
|
+
s.add_dependency(%q<highline>, [">= 1.6.19", "~> 1.6"])
|
140
141
|
s.add_dependency(%q<fluentd>, ["= 0.10.46"])
|
141
|
-
s.add_dependency(%q<ruby-binlog>, [">= 1.0.1"])
|
142
|
-
s.add_dependency(%q<fluent-plugin-mysql-binlog>, ["
|
143
|
-
s.add_dependency(%q<mysql2>, ["
|
144
|
-
s.add_dependency(%q<slop>, [">=
|
145
|
-
s.add_dependency(%q<treetop>, [">=
|
146
|
-
s.add_dependency(%q<
|
147
|
-
s.add_dependency(%q<jeweler>, [">= 0"])
|
142
|
+
s.add_dependency(%q<ruby-binlog>, [">= 1.0.1", "~> 1.0"])
|
143
|
+
s.add_dependency(%q<fluent-plugin-mysql-binlog>, [">= 0.0.2", "~> 0.0"])
|
144
|
+
s.add_dependency(%q<mysql2>, [">= 0.3.11", "~> 0.3"])
|
145
|
+
s.add_dependency(%q<slop>, [">= 3.4.6", "~> 3.4"])
|
146
|
+
s.add_dependency(%q<treetop>, [">= 1.5.3", "~> 1.5"])
|
147
|
+
s.add_dependency(%q<jeweler>, [">= 1.8.8", "~> 1.8"])
|
148
148
|
s.add_dependency(%q<rspec>, ["~> 3.0"])
|
149
|
-
s.add_dependency(%q<timecop>, [">= 0"])
|
150
|
-
s.add_dependency(%q<sqlite3>, [">= 0"])
|
151
|
-
s.add_dependency(%q<ruby-prof>, [">= 0"])
|
152
|
-
s.add_dependency(%q<activemodel>, ["
|
153
|
-
s.add_dependency(%q<activerecord>, ["
|
154
|
-
s.add_dependency(%q<protected_attributes>, [">= 0"])
|
149
|
+
s.add_dependency(%q<timecop>, [">= 0.7.1", "~> 0.7"])
|
150
|
+
s.add_dependency(%q<sqlite3>, [">= 0.1.1", "~> 0.1"])
|
151
|
+
s.add_dependency(%q<ruby-prof>, [">= 0.15.1", "~> 0.15"])
|
152
|
+
s.add_dependency(%q<activemodel>, [">= 4.0.0", "~> 4.0"])
|
153
|
+
s.add_dependency(%q<activerecord>, [">= 4.0.0", "~> 4.0"])
|
154
|
+
s.add_dependency(%q<protected_attributes>, [">= 1.0.8", "~> 1.0"])
|
155
155
|
end
|
156
156
|
else
|
157
|
-
s.add_dependency(%q<rest-client>, ["
|
158
|
-
s.add_dependency(%q<i18n>, ["
|
159
|
-
s.add_dependency(%q<activesupport>, ["
|
160
|
-
s.add_dependency(%q<json>, ["
|
161
|
-
s.add_dependency(%q<highline>, ["
|
157
|
+
s.add_dependency(%q<rest-client>, [">= 1.6.7", "~> 1.6"])
|
158
|
+
s.add_dependency(%q<i18n>, [">= 0.6.5", "~> 0.6"])
|
159
|
+
s.add_dependency(%q<activesupport>, [">= 4.0.0", "~> 4.0"])
|
160
|
+
s.add_dependency(%q<json>, [">= 1.8.0", "~> 1.8"])
|
161
|
+
s.add_dependency(%q<highline>, [">= 1.6.19", "~> 1.6"])
|
162
162
|
s.add_dependency(%q<fluentd>, ["= 0.10.46"])
|
163
|
-
s.add_dependency(%q<ruby-binlog>, [">= 1.0.1"])
|
164
|
-
s.add_dependency(%q<fluent-plugin-mysql-binlog>, ["
|
165
|
-
s.add_dependency(%q<mysql2>, ["
|
166
|
-
s.add_dependency(%q<slop>, [">=
|
167
|
-
s.add_dependency(%q<treetop>, [">=
|
168
|
-
s.add_dependency(%q<
|
169
|
-
s.add_dependency(%q<jeweler>, [">= 0"])
|
163
|
+
s.add_dependency(%q<ruby-binlog>, [">= 1.0.1", "~> 1.0"])
|
164
|
+
s.add_dependency(%q<fluent-plugin-mysql-binlog>, [">= 0.0.2", "~> 0.0"])
|
165
|
+
s.add_dependency(%q<mysql2>, [">= 0.3.11", "~> 0.3"])
|
166
|
+
s.add_dependency(%q<slop>, [">= 3.4.6", "~> 3.4"])
|
167
|
+
s.add_dependency(%q<treetop>, [">= 1.5.3", "~> 1.5"])
|
168
|
+
s.add_dependency(%q<jeweler>, [">= 1.8.8", "~> 1.8"])
|
170
169
|
s.add_dependency(%q<rspec>, ["~> 3.0"])
|
171
|
-
s.add_dependency(%q<timecop>, [">= 0"])
|
172
|
-
s.add_dependency(%q<sqlite3>, [">= 0"])
|
173
|
-
s.add_dependency(%q<ruby-prof>, [">= 0"])
|
174
|
-
s.add_dependency(%q<activemodel>, ["
|
175
|
-
s.add_dependency(%q<activerecord>, ["
|
176
|
-
s.add_dependency(%q<protected_attributes>, [">= 0"])
|
170
|
+
s.add_dependency(%q<timecop>, [">= 0.7.1", "~> 0.7"])
|
171
|
+
s.add_dependency(%q<sqlite3>, [">= 0.1.1", "~> 0.1"])
|
172
|
+
s.add_dependency(%q<ruby-prof>, [">= 0.15.1", "~> 0.15"])
|
173
|
+
s.add_dependency(%q<activemodel>, [">= 4.0.0", "~> 4.0"])
|
174
|
+
s.add_dependency(%q<activerecord>, [">= 4.0.0", "~> 4.0"])
|
175
|
+
s.add_dependency(%q<protected_attributes>, [">= 1.0.8", "~> 1.0"])
|
177
176
|
end
|
178
177
|
end
|
179
178
|
|
data/lib/flydata/command/sync.rb
CHANGED
@@ -165,6 +165,8 @@ module Flydata
|
|
165
165
|
raise "mysqldump is not installed. mysqldump is required to run the command"
|
166
166
|
end
|
167
167
|
|
168
|
+
schema_name = (de['schema_name'] || nil)
|
169
|
+
|
168
170
|
mp = de['mysql_data_entry_preference']
|
169
171
|
params = []
|
170
172
|
if mp['host'] then params << mp['host'] else raise "MySQL `host` is not defined in the data entry" end
|
@@ -186,7 +188,7 @@ module Flydata
|
|
186
188
|
break
|
187
189
|
end
|
188
190
|
flydata_tabledef = mysql_tabledef.to_flydata_tabledef
|
189
|
-
puts Flydata::TableDef::RedshiftTableDef.from_flydata_tabledef(flydata_tabledef, flydata_ctl_table: create_flydata_ctl_table)
|
191
|
+
puts Flydata::TableDef::RedshiftTableDef.from_flydata_tabledef(flydata_tabledef, flydata_ctl_table: create_flydata_ctl_table, schema_name: schema_name)
|
190
192
|
create_flydata_ctl_table = false
|
191
193
|
end
|
192
194
|
while !stderr.eof?
|
@@ -1,9 +1,9 @@
|
|
1
1
|
require 'flydata/parser_provider'
|
2
|
-
require_relative '
|
2
|
+
require_relative 'ddl_query_handler'
|
3
3
|
|
4
4
|
module Mysql
|
5
|
-
class AlterTableQueryHandler <
|
6
|
-
PATTERN = /^
|
5
|
+
class AlterTableQueryHandler < DdlQueryHandler
|
6
|
+
PATTERN = /^ALTER TABLE/i
|
7
7
|
|
8
8
|
def initialize(context)
|
9
9
|
super
|
@@ -14,16 +14,15 @@ module Mysql
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def process(record, normalized_query)
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
#end
|
17
|
+
emit_record(:alter_table, record, increment_table_rev: true) do
|
18
|
+
result = ParserProvider.parser(:mysql, :mysql_alter_table).new.parse(record['query'])
|
19
|
+
if result.nil?
|
20
|
+
$log.warn("Recieved not supported alter table query. query:'#{record['query']}'")
|
21
|
+
nil
|
22
|
+
else
|
23
|
+
result.tree
|
24
|
+
end
|
25
|
+
end
|
27
26
|
end
|
28
27
|
end
|
29
28
|
end
|
@@ -32,7 +32,8 @@ module Mysql
|
|
32
32
|
class FlydataBinlogQueryDispatcher < BinlogQueryDispatcher
|
33
33
|
def initialize(context)
|
34
34
|
@handlers = [
|
35
|
-
|
35
|
+
# TODO Uncomment below to enable AlterTable support
|
36
|
+
# AlterTableQueryHandler.new(context),
|
36
37
|
]
|
37
38
|
end
|
38
39
|
end
|
@@ -27,8 +27,12 @@ module Mysql
|
|
27
27
|
|
28
28
|
private
|
29
29
|
|
30
|
-
def
|
31
|
-
@context.database
|
30
|
+
def supported_database
|
31
|
+
@context.database
|
32
|
+
end
|
33
|
+
|
34
|
+
def acceptable_db?(record)
|
35
|
+
supported_database == record["db_name"]
|
32
36
|
end
|
33
37
|
|
34
38
|
def acceptable_table?(record, table)
|
@@ -47,7 +51,7 @@ module Mysql
|
|
47
51
|
end
|
48
52
|
|
49
53
|
def emit_record(type, record, opt = {})
|
50
|
-
return unless acceptable_db?(record
|
54
|
+
return unless acceptable_db?(record)
|
51
55
|
return unless record["table_name"].nil? or acceptable_table?(record, record["table_name"])
|
52
56
|
|
53
57
|
check_empty_binlog
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require_relative 'binlog_query_handler'
|
2
|
+
|
3
|
+
module Mysql
|
4
|
+
|
5
|
+
class DdlQueryHandler < BinlogQueryHandler
|
6
|
+
DDL_TABLE_QUERY = /^(?:(?:ALTER|CREATE|DROP|RENAME) +(?:\w+ +)*TABLE +([^ ]+)|TRUNCATE +(?:TABLE +)?([^ ]+))/i
|
7
|
+
|
8
|
+
def acceptable_db?(record)
|
9
|
+
db_name = record["db_name"]
|
10
|
+
if DDL_TABLE_QUERY =~ record["query"]
|
11
|
+
table_name_in_query = $1 ? $1 : $2
|
12
|
+
|
13
|
+
if (idx = table_name_in_query.index("."))
|
14
|
+
db_name = table_name_in_query[0...idx].tr("`", "")
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
supported_database == db_name
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
@@ -18,11 +18,13 @@ grammar MysqlAlterTable
|
|
18
18
|
alter_key sp online_option ignore_option table_key sp tbl_name
|
19
19
|
sp alter_specs (sp partition_opts)? {
|
20
20
|
def tree
|
21
|
-
{
|
21
|
+
value = {
|
22
22
|
type: :alter_table,
|
23
|
-
table_name: tbl_name.text_value,
|
23
|
+
table_name: tbl_name.table_part.text_value,
|
24
24
|
actions: alter_specs.actions
|
25
25
|
}
|
26
|
+
value[:schema_name] = tbl_name.schema_part.text_value if tbl_name.has_schema?
|
27
|
+
value
|
26
28
|
end
|
27
29
|
}
|
28
30
|
end
|
@@ -248,6 +250,25 @@ grammar MysqlAlterTable
|
|
248
250
|
######## Common rules
|
249
251
|
|
250
252
|
rule tbl_name
|
253
|
+
( schema_part dot )? table_part {
|
254
|
+
def has_schema?
|
255
|
+
elements[0].respond_to? :schema_part
|
256
|
+
end
|
257
|
+
def schema_part
|
258
|
+
if has_schema?
|
259
|
+
elements[0].schema_part
|
260
|
+
else
|
261
|
+
nil
|
262
|
+
end
|
263
|
+
end
|
264
|
+
}
|
265
|
+
end
|
266
|
+
|
267
|
+
rule schema_part
|
268
|
+
ident_sys
|
269
|
+
end
|
270
|
+
|
271
|
+
rule table_part
|
251
272
|
ident_sys
|
252
273
|
end
|
253
274
|
|
@@ -299,4 +320,8 @@ grammar MysqlAlterTable
|
|
299
320
|
rule nsp
|
300
321
|
[\s]*
|
301
322
|
end
|
323
|
+
|
324
|
+
rule dot
|
325
|
+
'.'
|
326
|
+
end
|
302
327
|
end
|