pt-osc 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.
- data/.travis.yml +1 -0
- data/CHANGELOG.md +5 -0
- data/README.md +1 -0
- data/lib/active_record/pt_osc_migration.rb +1 -2
- data/lib/pt-osc/version.rb +1 -1
- data/test/config/database.yml +21 -1
- data/test/test_helper.rb +2 -2
- data/test/unit/pt_osc_migration_unit_test.rb +93 -0
- metadata +4 -4
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
## 0.1.3
|
2
|
+
|
3
|
+
- fix for loading percona config
|
4
|
+
- added test coverage for loading run_mode from config
|
5
|
+
|
1
6
|
## 0.1.2
|
2
7
|
|
3
8
|
- report `adapter_name` as `mysql2` for compatibility with gems that check it (e.g. [mceachen/with_advisory_lock](https://github.com/mceachen/with_advisory_lock))
|
data/README.md
CHANGED
@@ -155,8 +155,7 @@ module ActiveRecord
|
|
155
155
|
end
|
156
156
|
|
157
157
|
def database_config
|
158
|
-
|
159
|
-
@connection.instance_variable_get(:@config) || ActiveRecord::Base.connection_config
|
158
|
+
@db_config ||= (@connection.instance_variable_get(:@config) || ActiveRecord::Base.connection_config).with_indifferent_access
|
160
159
|
end
|
161
160
|
|
162
161
|
def percona_config
|
data/lib/pt-osc/version.rb
CHANGED
data/test/config/database.yml
CHANGED
@@ -1,6 +1,26 @@
|
|
1
|
-
test:
|
1
|
+
test: &test
|
2
2
|
pool: 5
|
3
3
|
host: localhost
|
4
4
|
username: root
|
5
5
|
database: pt_osc_test
|
6
6
|
reconnect: true
|
7
|
+
|
8
|
+
test_print:
|
9
|
+
<<: *test
|
10
|
+
percona:
|
11
|
+
run_mode: print
|
12
|
+
|
13
|
+
test_execute:
|
14
|
+
<<: *test
|
15
|
+
percona:
|
16
|
+
run_mode: execute
|
17
|
+
|
18
|
+
test_print_string:
|
19
|
+
<<: *test
|
20
|
+
percona:
|
21
|
+
run_mode: 'print'
|
22
|
+
|
23
|
+
test_execute_string:
|
24
|
+
<<: *test
|
25
|
+
percona:
|
26
|
+
run_mode: 'execute'
|
data/test/test_helper.rb
CHANGED
@@ -12,8 +12,8 @@ require 'mocha'
|
|
12
12
|
|
13
13
|
Rails.backtrace_cleaner.remove_silencers!
|
14
14
|
|
15
|
-
def test_spec
|
16
|
-
test_spec = YAML.load_file(Rails.root.join(*%w(.. config database.yml)))[
|
15
|
+
def test_spec(key = 'test')
|
16
|
+
test_spec = YAML.load_file(Rails.root.join(*%w(.. config database.yml)))[key]
|
17
17
|
test_spec['adapter'] = 'mysql_pt_osc'
|
18
18
|
test_spec
|
19
19
|
end
|
@@ -9,10 +9,15 @@ class PtOscMigrationUnitTest < Test::Unit::TestCase
|
|
9
9
|
context '#percona_command' do
|
10
10
|
context 'connected to a pt-osc database' do
|
11
11
|
setup do
|
12
|
+
@old_connection = @migration.instance_variable_get(:@connection)
|
12
13
|
ActiveRecord::Base.establish_connection(test_spec)
|
13
14
|
@migration.instance_variable_set(:@connection, ActiveRecord::Base.connection)
|
14
15
|
end
|
15
16
|
|
17
|
+
teardown do
|
18
|
+
@migration.instance_variable_set(:@connection, @old_connection)
|
19
|
+
end
|
20
|
+
|
16
21
|
should 'only include flags in PERCONA_FLAGS' do
|
17
22
|
flag = ActiveRecord::PtOscMigration.percona_flags.first
|
18
23
|
begin
|
@@ -76,6 +81,94 @@ class PtOscMigrationUnitTest < Test::Unit::TestCase
|
|
76
81
|
end
|
77
82
|
end
|
78
83
|
end
|
84
|
+
|
85
|
+
context 'connected to a pt-osc database in print mode' do
|
86
|
+
setup do
|
87
|
+
@old_connection = @migration.instance_variable_get(:@connection)
|
88
|
+
ActiveRecord::Base.establish_connection(test_spec('test_print'))
|
89
|
+
@migration.instance_variable_set(:@connection, ActiveRecord::Base.connection)
|
90
|
+
end
|
91
|
+
|
92
|
+
teardown do
|
93
|
+
@migration.instance_variable_set(:@connection, @old_connection)
|
94
|
+
end
|
95
|
+
|
96
|
+
should 'have print as the run_mode' do
|
97
|
+
assert_equal 'print', @migration.send(:percona_config)[:run_mode]
|
98
|
+
end
|
99
|
+
|
100
|
+
should 'call print_pt_osc' do
|
101
|
+
@migration.expects(:print_pt_osc).once.returns(nil)
|
102
|
+
@migration.expects(:execute_pt_osc).never
|
103
|
+
@migration.migrate(:up)
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
context 'connected to a pt-osc database in print mode as string' do
|
108
|
+
setup do
|
109
|
+
@old_connection = @migration.instance_variable_get(:@connection)
|
110
|
+
ActiveRecord::Base.establish_connection(test_spec('test_print_string'))
|
111
|
+
@migration.instance_variable_set(:@connection, ActiveRecord::Base.connection)
|
112
|
+
end
|
113
|
+
|
114
|
+
teardown do
|
115
|
+
@migration.instance_variable_set(:@connection, @old_connection)
|
116
|
+
end
|
117
|
+
|
118
|
+
should 'have print as the run_mode' do
|
119
|
+
assert_equal 'print', @migration.send(:percona_config)[:run_mode]
|
120
|
+
end
|
121
|
+
|
122
|
+
should 'call print_pt_osc' do
|
123
|
+
@migration.expects(:print_pt_osc).once.returns(nil)
|
124
|
+
@migration.expects(:execute_pt_osc).never
|
125
|
+
@migration.migrate(:up)
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
context 'connected to a pt-osc database in execute mode' do
|
130
|
+
setup do
|
131
|
+
@old_connection = @migration.instance_variable_get(:@connection)
|
132
|
+
ActiveRecord::Base.establish_connection(test_spec('test_execute'))
|
133
|
+
@migration.instance_variable_set(:@connection, ActiveRecord::Base.connection)
|
134
|
+
end
|
135
|
+
|
136
|
+
teardown do
|
137
|
+
@migration.instance_variable_set(:@connection, @old_connection)
|
138
|
+
end
|
139
|
+
|
140
|
+
should 'have execute as the run_mode' do
|
141
|
+
assert_equal 'execute', @migration.send(:percona_config)[:run_mode]
|
142
|
+
end
|
143
|
+
|
144
|
+
should 'call execute_pt_osc' do
|
145
|
+
@migration.expects(:execute_pt_osc).once.returns(nil)
|
146
|
+
@migration.expects(:print_pt_osc).never
|
147
|
+
@migration.migrate(:up)
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
context 'connected to a pt-osc database in execute mode as string' do
|
152
|
+
setup do
|
153
|
+
@old_connection = @migration.instance_variable_get(:@connection)
|
154
|
+
ActiveRecord::Base.establish_connection(test_spec('test_execute_string'))
|
155
|
+
@migration.instance_variable_set(:@connection, ActiveRecord::Base.connection)
|
156
|
+
end
|
157
|
+
|
158
|
+
teardown do
|
159
|
+
@migration.instance_variable_set(:@connection, @old_connection)
|
160
|
+
end
|
161
|
+
|
162
|
+
should 'have execute as the run_mode' do
|
163
|
+
assert_equal 'execute', @migration.send(:percona_config)[:run_mode]
|
164
|
+
end
|
165
|
+
|
166
|
+
should 'call execute_pt_osc' do
|
167
|
+
@migration.expects(:execute_pt_osc).once.returns(nil)
|
168
|
+
@migration.expects(:print_pt_osc).never
|
169
|
+
@migration.migrate(:up)
|
170
|
+
end
|
171
|
+
end
|
79
172
|
end
|
80
173
|
|
81
174
|
context '#make_path_absolute' do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pt-osc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-10-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -246,7 +246,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
246
246
|
version: '0'
|
247
247
|
segments:
|
248
248
|
- 0
|
249
|
-
hash: -
|
249
|
+
hash: -738209304282433145
|
250
250
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
251
251
|
none: false
|
252
252
|
requirements:
|
@@ -255,7 +255,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
255
255
|
version: '0'
|
256
256
|
segments:
|
257
257
|
- 0
|
258
|
-
hash: -
|
258
|
+
hash: -738209304282433145
|
259
259
|
requirements: []
|
260
260
|
rubyforge_project:
|
261
261
|
rubygems_version: 1.8.23
|