ridgepole 0.6.5.beta3 → 0.6.5.beta4

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: 9f55a300d2808032c178912f81d291ba094a867a
4
- data.tar.gz: 20e173fc302bc246392f9efb96f4497c76154516
3
+ metadata.gz: 6eb5cd9b6da53e0af2afd188637a9196f5a59b6c
4
+ data.tar.gz: c0c798186e1cd37c7e1881278270d82f200020bd
5
5
  SHA512:
6
- metadata.gz: 42b281cc0ebcb60117addc51ddba6b3b39b4358cc86fe804a5a184f2e96e4cff193e66d89b4dedc821e08d529e5ecf23874fa7ee4026b31533ad51f7d050d1c8
7
- data.tar.gz: 4cdd724e376511e9cbbb82b269b4aecfc3657f3d6618744b90cb5c43bc8e5353e50cc2a9f1e5f2be85616fe72e92163f2fd7dd1728d0b8b42036ecec040e969b
6
+ metadata.gz: 34b3eca50c3aadbf464e4a23f3c5a16c1f8022709fd02df91992212b083eb3080ed50e06556d216405d462f2288948c617c21e1dfc15a2cea567d5d062692712
7
+ data.tar.gz: da081d87c9e157c515bfd81acd1363b3586bf532861f480ac627ba1e936e2b65d606b8751220ca2b1917282fc2ccd44f2507a5f1aa4581107f7481674f948abd
@@ -184,6 +184,15 @@ class Ridgepole::DSLParser
184
184
  raise "Index `#{table_name}(#{idx})` already defined"
185
185
  end
186
186
 
187
+ if options[:length].is_a?(Numeric)
188
+ index_length = options[:length]
189
+ options[:length] = {}
190
+
191
+ column_name.each do |col|
192
+ options[:length][col] = index_length
193
+ end
194
+ end
195
+
187
196
  @__definition[table_name][:indices][idx] = {
188
197
  :column_name => column_name,
189
198
  :options => options,
@@ -1,3 +1,3 @@
1
1
  module Ridgepole
2
- VERSION = '0.6.5.beta3'
2
+ VERSION = '0.6.5.beta4'
3
3
  end
@@ -0,0 +1,86 @@
1
+ describe 'Ridgepole::Client#diff -> migrate' do
2
+ context 'when change index (length is Numeric) / No update' do
3
+ let(:actual_dsl) {
4
+ erbh(<<-EOS)
5
+ create_table "employees", primary_key: "emp_no", <%= i unsigned(true) + {force: :cascade} %> do |t|
6
+ t.date "birth_date", null: false
7
+ t.string "first_name", limit: 14, null: false
8
+ t.string "last_name", limit: 16, null: false
9
+ t.string "gender", limit: 1, null: false
10
+ t.date "hire_date", null: false
11
+ end
12
+
13
+ <%= add_index "employees", ["first_name", "last_name"], name: "idx_first_name_last_name", length: {"first_name"=>10, "last_name"=>10}, using: :btree %>
14
+ EOS
15
+ }
16
+
17
+ let(:expected_dsl) {
18
+ erbh(<<-EOS)
19
+ create_table "employees", primary_key: "emp_no", <%= i unsigned(true) + {force: :cascade} %> do |t|
20
+ t.date "birth_date", null: false
21
+ t.string "first_name", limit: 14, null: false
22
+ t.string "last_name", limit: 16, null: false
23
+ t.string "gender", limit: 1, null: false
24
+ t.date "hire_date", null: false
25
+ end
26
+
27
+ <%= add_index "employees", ["first_name", "last_name"], name: "idx_first_name_last_name", length: 10, using: :btree %>
28
+ EOS
29
+ }
30
+
31
+ before { subject.diff(actual_dsl).migrate }
32
+ subject { client }
33
+
34
+ it {
35
+ delta = subject.diff(expected_dsl)
36
+ expect(delta.differ?).to be_falsy
37
+ expect(subject.dump).to match_fuzzy actual_dsl
38
+ }
39
+ end
40
+
41
+ context 'when change index (length is Numeric) / Update' do
42
+ let(:actual_dsl) {
43
+ erbh(<<-EOS)
44
+ create_table "employees", primary_key: "emp_no", <%= i unsigned(true) + {force: :cascade} %> do |t|
45
+ t.date "birth_date", null: false
46
+ t.string "first_name", limit: 14, null: false
47
+ t.string "last_name", limit: 16, null: false
48
+ t.string "gender", limit: 1, null: false
49
+ t.date "hire_date", null: false
50
+ end
51
+ EOS
52
+ }
53
+
54
+ let(:expected_dsl) {
55
+ erbh(<<-EOS)
56
+ create_table "employees", primary_key: "emp_no", <%= i unsigned(true) + {force: :cascade} %> do |t|
57
+ t.date "birth_date", null: false
58
+ t.string "first_name", limit: 14, null: false
59
+ t.string "last_name", limit: 16, null: false
60
+ t.string "gender", limit: 1, null: false
61
+ t.date "hire_date", null: false
62
+ end
63
+
64
+ <%= add_index "employees", ["first_name", "last_name"], name: "idx_first_name_last_name", length: 10, using: :btree %>
65
+ EOS
66
+ }
67
+
68
+ let(:actual_dsl_plus_index) {
69
+ erbh(<<-EOS)
70
+ #{actual_dsl}
71
+ <%= add_index "employees", ["first_name", "last_name"], name: "idx_first_name_last_name", length: {"first_name"=>10, "last_name"=>10}, using: :btree %>
72
+ EOS
73
+ }
74
+
75
+ before { subject.diff(actual_dsl).migrate }
76
+ subject { client }
77
+
78
+ it {
79
+ delta = subject.diff(expected_dsl)
80
+ expect(delta.differ?).to be_truthy
81
+ expect(subject.dump).to match_fuzzy actual_dsl
82
+ delta.migrate
83
+ expect(subject.dump).to match_fuzzy actual_dsl_plus_index
84
+ }
85
+ end
86
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ridgepole
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.5.beta3
4
+ version: 0.6.5.beta4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Genki Sugawara
@@ -259,6 +259,7 @@ files:
259
259
  - spec/mysql/migrate/migrate_change_index4_spec.rb
260
260
  - spec/mysql/migrate/migrate_change_index5_spec.rb
261
261
  - spec/mysql/migrate/migrate_change_index6_spec.rb
262
+ - spec/mysql/migrate/migrate_change_index7_spec.rb
262
263
  - spec/mysql/migrate/migrate_change_index_spec.rb
263
264
  - spec/mysql/migrate/migrate_change_table_option_spec.rb
264
265
  - spec/mysql/migrate/migrate_create_index2_spec.rb
@@ -384,6 +385,7 @@ test_files:
384
385
  - spec/mysql/migrate/migrate_change_index4_spec.rb
385
386
  - spec/mysql/migrate/migrate_change_index5_spec.rb
386
387
  - spec/mysql/migrate/migrate_change_index6_spec.rb
388
+ - spec/mysql/migrate/migrate_change_index7_spec.rb
387
389
  - spec/mysql/migrate/migrate_change_index_spec.rb
388
390
  - spec/mysql/migrate/migrate_change_table_option_spec.rb
389
391
  - spec/mysql/migrate/migrate_create_index2_spec.rb