ridgepole 0.6.5.beta3 → 0.6.5.beta4
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.
- checksums.yaml +4 -4
- data/lib/ridgepole/dsl_parser.rb +9 -0
- data/lib/ridgepole/version.rb +1 -1
- data/spec/mysql/migrate/migrate_change_index7_spec.rb +86 -0
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6eb5cd9b6da53e0af2afd188637a9196f5a59b6c
|
4
|
+
data.tar.gz: c0c798186e1cd37c7e1881278270d82f200020bd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 34b3eca50c3aadbf464e4a23f3c5a16c1f8022709fd02df91992212b083eb3080ed50e06556d216405d462f2288948c617c21e1dfc15a2cea567d5d062692712
|
7
|
+
data.tar.gz: da081d87c9e157c515bfd81acd1363b3586bf532861f480ac627ba1e936e2b65d606b8751220ca2b1917282fc2ccd44f2507a5f1aa4581107f7481674f948abd
|
data/lib/ridgepole/dsl_parser.rb
CHANGED
@@ -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,
|
data/lib/ridgepole/version.rb
CHANGED
@@ -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.
|
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
|