ridgepole 0.6.3.beta → 0.6.3.beta2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1e0f9257b25ebf5d941734433df6dd1866b5b0e9
4
- data.tar.gz: 84097da34f74782d0b1ca02bdd29842ca9167b52
3
+ metadata.gz: 8de78f0c1a68e3c21972a27b2181a42534920567
4
+ data.tar.gz: 81b644deea5beba444ad3f4dcd79d9e816a3398f
5
5
  SHA512:
6
- metadata.gz: d4ba059da276af54510fc6e9b8c7932f3f3060b033e736bb1dfda339fdc26f534f227ae0d5071b263044d83a6aac13dfa95d68d67e79745c3f92c8983d138dce
7
- data.tar.gz: b13e98c9181aca062630f96cbd79f4b87e83cb69dcb48cdf8217b90dc1c41bd7a02566851a41c5158f054d3c4d54ac82c6c43beb7907baa803b20854e6e7234d
6
+ metadata.gz: fe51fa0e32f37492ab00ca349c6102d9e1db6e185c958ccbdca63375194f832ddb194f6d4c3280bf9f85e5de909d87c9b225b685afc0c793d66f096c3c103350
7
+ data.tar.gz: de8500f55d963d31cf18589dfe238fa1cc6e6b2a327c8707ed6faa2d04cdb8315138d2ef9503b2ed8b8c9e5ae1f7e0cb5ba092f8ebecd17abb3ad07d98fa7bfb
@@ -243,9 +243,11 @@ class Ridgepole::Diff
243
243
  end
244
244
 
245
245
  def target?(table_name)
246
- if @options[:ignore_tables] and @options[:ignore_tables].any? {|i| i =~ table_name }
246
+ if @options[:tables] and @options[:tables].include?(table_name)
247
+ true
248
+ elsif @options[:ignore_tables] and @options[:ignore_tables].any? {|i| i =~ table_name }
247
249
  false
248
- elsif @options[:tables] and not @options[:tables].include?(table_name)
250
+ elsif @options[:tables]
249
251
  false
250
252
  else
251
253
  true
@@ -18,7 +18,7 @@ class Ridgepole::Dumper
18
18
 
19
19
  if ignore_tables
20
20
  conn.tables.each do |tbl|
21
- if ignore_tables.any? {|i| i =~ tbl }
21
+ if ignore_tables.any? {|i| i =~ tbl } and not (target_tables and target_tables.include?(tbl))
22
22
  ActiveRecord::SchemaDumper.ignore_tables << tbl
23
23
  end
24
24
  end
@@ -1,3 +1,3 @@
1
1
  module Ridgepole
2
- VERSION = '0.6.3.beta'
2
+ VERSION = '0.6.3.beta2'
3
3
  end
@@ -153,5 +153,179 @@ describe 'Ridgepole::Client#diff -> migrate' do
153
153
  RUBY
154
154
  }
155
155
  end
156
+
157
+ context 'when with ignore tables option (target and ignore)' do
158
+ let(:current_schema) {
159
+ <<-RUBY
160
+ create_table "employees", primary_key: "emp_no", force: :cascade do |t|
161
+ t.date "birth_date", null: false
162
+ t.string "first_name", limit: 14, null: false
163
+ t.string "last_name", limit: 16, null: false
164
+ t.string "gender", limit: 1, null: false
165
+ t.date "hire_date", null: false
166
+ end
167
+
168
+ create_table "salaries", id: false, force: :cascade do |t|
169
+ t.integer "emp_no", null: false
170
+ t.integer "salary", null: false
171
+ t.date "from_date", null: false
172
+ t.date "to_date", null: false
173
+ end
174
+
175
+ add_index "salaries", ["salary"], name: "emp_no", using: :btree
176
+ RUBY
177
+ }
178
+
179
+ let(:dsl) {
180
+ <<-RUBY
181
+ create_table "employees", primary_key: "emp_no", force: :cascade do |t|
182
+ t.date "birth_date", null: false
183
+ t.string "first_name", limit: 15, null: false
184
+ t.string "last_name", limit: 16, null: false
185
+ t.string "gender", limit: 1, null: false
186
+ t.date "hire_date", null: false
187
+ end
188
+
189
+ create_table "salaries", id: false, force: :cascade do |t|
190
+ t.integer "emp_no", null: false
191
+ t.integer "salary", null: false
192
+ t.date "from_date", null: false
193
+ t.date "to_date", null: false
194
+ end
195
+
196
+ add_index "salaries", ["emp_no"], name: "emp_no", using: :btree
197
+ RUBY
198
+ }
199
+
200
+ let(:before_dsl) {
201
+ <<-RUBY
202
+ create_table "employees", primary_key: "emp_no", force: :cascade do |t|
203
+ t.date "birth_date", null: false
204
+ t.string "first_name", limit: 14, null: false
205
+ t.string "last_name", limit: 16, null: false
206
+ t.string "gender", limit: 1, null: false
207
+ t.date "hire_date", null: false
208
+ end
209
+ RUBY
210
+ }
211
+
212
+ let(:after_dsl) {
213
+ <<-RUBY
214
+ create_table "employees", primary_key: "emp_no", force: :cascade do |t|
215
+ t.date "birth_date", null: false
216
+ t.string "first_name", limit: 15, null: false
217
+ t.string "last_name", limit: 16, null: false
218
+ t.string "gender", limit: 1, null: false
219
+ t.date "hire_date", null: false
220
+ end
221
+ RUBY
222
+ }
223
+
224
+ before { subject.diff(current_schema).migrate }
225
+ subject { client(tables: ["employees"], ignore_tables: [/^.+$/] ) }
226
+
227
+ it {
228
+ delta = subject.diff(dsl)
229
+ expect(delta.differ?).to be_truthy
230
+ expect(subject.dump).to eq before_dsl.strip_heredoc.strip
231
+ delta.migrate
232
+ expect(subject.dump).to eq after_dsl.strip_heredoc.strip
233
+ }
234
+
235
+ it {
236
+ delta = Ridgepole::Client.diff(current_schema, dsl, ignore_tables: [/^salaries$/], reverse: true, enable_mysql_awesome: true)
237
+ expect(delta.differ?).to be_truthy
238
+ expect(delta.script).to eq <<-RUBY.strip_heredoc.strip
239
+ change_column("employees", "first_name", :string, {:limit=>14, :null=>false, :default=>nil, :unsigned=>false})
240
+ RUBY
241
+ }
242
+ end
243
+
244
+ context 'when with ignore tables option (target)' do
245
+ let(:current_schema) {
246
+ <<-RUBY
247
+ create_table "employees", primary_key: "emp_no", force: :cascade do |t|
248
+ t.date "birth_date", null: false
249
+ t.string "first_name", limit: 14, null: false
250
+ t.string "last_name", limit: 16, null: false
251
+ t.string "gender", limit: 1, null: false
252
+ t.date "hire_date", null: false
253
+ end
254
+
255
+ create_table "salaries", id: false, force: :cascade do |t|
256
+ t.integer "emp_no", null: false
257
+ t.integer "salary", null: false
258
+ t.date "from_date", null: false
259
+ t.date "to_date", null: false
260
+ end
261
+
262
+ add_index "salaries", ["salary"], name: "emp_no", using: :btree
263
+ RUBY
264
+ }
265
+
266
+ let(:dsl) {
267
+ <<-RUBY
268
+ create_table "employees", primary_key: "emp_no", force: :cascade do |t|
269
+ t.date "birth_date", null: false
270
+ t.string "first_name", limit: 15, null: false
271
+ t.string "last_name", limit: 16, null: false
272
+ t.string "gender", limit: 1, null: false
273
+ t.date "hire_date", null: false
274
+ end
275
+
276
+ create_table "salaries", id: false, force: :cascade do |t|
277
+ t.integer "emp_no", null: false
278
+ t.integer "salary", null: false
279
+ t.date "from_date", null: false
280
+ t.date "to_date", null: false
281
+ end
282
+
283
+ add_index "salaries", ["emp_no"], name: "emp_no", using: :btree
284
+ RUBY
285
+ }
286
+
287
+ let(:before_dsl) {
288
+ <<-RUBY
289
+ create_table "employees", primary_key: "emp_no", force: :cascade do |t|
290
+ t.date "birth_date", null: false
291
+ t.string "first_name", limit: 14, null: false
292
+ t.string "last_name", limit: 16, null: false
293
+ t.string "gender", limit: 1, null: false
294
+ t.date "hire_date", null: false
295
+ end
296
+ RUBY
297
+ }
298
+
299
+ let(:after_dsl) {
300
+ <<-RUBY
301
+ create_table "employees", primary_key: "emp_no", force: :cascade do |t|
302
+ t.date "birth_date", null: false
303
+ t.string "first_name", limit: 15, null: false
304
+ t.string "last_name", limit: 16, null: false
305
+ t.string "gender", limit: 1, null: false
306
+ t.date "hire_date", null: false
307
+ end
308
+ RUBY
309
+ }
310
+
311
+ before { subject.diff(current_schema).migrate }
312
+ subject { client(tables: ["employees"]) }
313
+
314
+ it {
315
+ delta = subject.diff(dsl)
316
+ expect(delta.differ?).to be_truthy
317
+ expect(subject.dump).to eq before_dsl.strip_heredoc.strip
318
+ delta.migrate
319
+ expect(subject.dump).to eq after_dsl.strip_heredoc.strip
320
+ }
321
+
322
+ it {
323
+ delta = Ridgepole::Client.diff(current_schema, dsl, ignore_tables: [/^salaries$/], reverse: true, enable_mysql_awesome: true)
324
+ expect(delta.differ?).to be_truthy
325
+ expect(delta.script).to eq <<-RUBY.strip_heredoc.strip
326
+ change_column("employees", "first_name", :string, {:limit=>14, :null=>false, :default=>nil, :unsigned=>false})
327
+ RUBY
328
+ }
329
+ end
156
330
  end
157
331
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ridgepole
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.3.beta
4
+ version: 0.6.3.beta2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Genki Sugawara
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-11 00:00:00.000000000 Z
11
+ date: 2015-07-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord