ridgepole 0.6.5.beta12 → 0.6.5.beta13
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/README.md +2 -1
- data/lib/ridgepole/diff.rb +4 -4
- data/lib/ridgepole/dsl_parser.rb +2 -2
- data/lib/ridgepole/version.rb +1 -1
- data/spec/mysql/migrate/migrate_add_column_order_spec.rb +258 -0
- data/spec/mysql/migrate/migrate_create_table_spec.rb +30 -10
- data/spec/postgresql/migrate/migrate_create_table_spec.rb +30 -10
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1715eb2299b54adfbacddd9a752fe8b417a146a7
|
4
|
+
data.tar.gz: f65fa87636b4f86569ebaef52ff83eca98daa188
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dac2e2744d7590f485d9e2efc47ac9c463c02064d47669eff44dd051f67dc8bc5a143488eb70aa8a33ff37846fabbfcc88af17998978c514680e55c2759655af
|
7
|
+
data.tar.gz: 4e50d921cff1dc098664e8f366115d9456d47f200e1a17bf943413efe78f5416ea6883ca6bfbebe3691d24ef5ffc169dbf6dad2959ac01ca45246fd3d274069b
|
data/README.md
CHANGED
@@ -55,7 +55,8 @@ It defines DB schema using [Rails DSL](http://guides.rubyonrails.org/migrations.
|
|
55
55
|
* Support new types ([pull#84](https://github.com/winebarrel/ridgepole/pull/84))
|
56
56
|
* Support `default: -> { ... }` ([pull#85](https://github.com/winebarrel/ridgepole/pull/85))
|
57
57
|
* Support DDL Comment (Rails5 only)
|
58
|
-
* Output schema diff when `--
|
58
|
+
* Output schema diff when pass `--verbose`
|
59
|
+
* Support composite primary key (Rails5 only / [pull#97](https://github.com/winebarrel/ridgepole/pull/97))
|
59
60
|
|
60
61
|
## Installation
|
61
62
|
|
data/lib/ridgepole/diff.rb
CHANGED
@@ -115,10 +115,10 @@ class Ridgepole::Diff
|
|
115
115
|
# for reverse option
|
116
116
|
scan_column_rename(to, from, definition_delta)
|
117
117
|
|
118
|
-
if table_options[:primary_key].
|
119
|
-
priv_column_name =
|
118
|
+
if table_options[:id] == false or table_options[:primary_key].is_a?(Array)
|
119
|
+
priv_column_name = nil
|
120
120
|
else
|
121
|
-
priv_column_name = table_options[:primary_key]
|
121
|
+
priv_column_name = table_options[:primary_key] || 'id'
|
122
122
|
end
|
123
123
|
|
124
124
|
to.each do |column_name, to_attrs|
|
@@ -307,7 +307,7 @@ class Ridgepole::Diff
|
|
307
307
|
return true
|
308
308
|
end
|
309
309
|
|
310
|
-
if table_options[:id] != false
|
310
|
+
if table_options[:id] != false and not table_options[:primary_key].is_a?(Array)
|
311
311
|
actual_columns = actual_columns + [(table_options[:primary_key] || 'id').to_s]
|
312
312
|
end
|
313
313
|
|
data/lib/ridgepole/dsl_parser.rb
CHANGED
@@ -156,8 +156,8 @@ class Ridgepole::DSLParser
|
|
156
156
|
table_name = table_name.to_s
|
157
157
|
table_definition = TableDefinition.new(table_name, self)
|
158
158
|
|
159
|
-
[:primary_key]
|
160
|
-
options[
|
159
|
+
if options[:primary_key] and options[:primary_key].is_a?(Symbol)
|
160
|
+
options[:primary_key] = options[:primary_key].to_s
|
161
161
|
end
|
162
162
|
|
163
163
|
yield(table_definition)
|
data/lib/ridgepole/version.rb
CHANGED
@@ -0,0 +1,258 @@
|
|
1
|
+
describe 'Ridgepole::Client#diff -> migrate' do
|
2
|
+
let(:template_variables) {
|
3
|
+
opts = {
|
4
|
+
sql_int_type: 'int(11)',
|
5
|
+
}
|
6
|
+
|
7
|
+
if condition(:mysql_awesome_enabled, :activerecord_5)
|
8
|
+
opts.merge!(
|
9
|
+
sql_int_type: 'int'
|
10
|
+
)
|
11
|
+
end
|
12
|
+
|
13
|
+
opts
|
14
|
+
}
|
15
|
+
|
16
|
+
context 'when add column to first' do
|
17
|
+
let(:actual_dsl) {
|
18
|
+
erbh(<<-EOS, template_variables)
|
19
|
+
create_table "dept_emp", force: :cascade do |t|
|
20
|
+
t.integer "emp_no", <%= i limit(4) + {null: false} %>
|
21
|
+
t.string "dept_no", limit: 4, null: false
|
22
|
+
t.date "from_date", null: false
|
23
|
+
t.date "to_date", null: false
|
24
|
+
end
|
25
|
+
EOS
|
26
|
+
}
|
27
|
+
|
28
|
+
let(:expected_dsl) {
|
29
|
+
erbh(<<-EOS, template_variables)
|
30
|
+
create_table "dept_emp", force: :cascade do |t|
|
31
|
+
t.integer "emp_no0", <%= i limit(4) + {null: false} %>
|
32
|
+
t.integer "emp_no", <%= i limit(4) + {null: false} %>
|
33
|
+
t.string "dept_no", limit: 4, null: false
|
34
|
+
t.date "from_date", null: false
|
35
|
+
t.date "to_date", null: false
|
36
|
+
end
|
37
|
+
EOS
|
38
|
+
}
|
39
|
+
|
40
|
+
before { subject.diff(actual_dsl).migrate }
|
41
|
+
subject { client }
|
42
|
+
|
43
|
+
it {
|
44
|
+
delta = subject.diff(expected_dsl)
|
45
|
+
expect(delta.differ?).to be_truthy
|
46
|
+
expect(subject.dump).to match_fuzzy actual_dsl
|
47
|
+
delta.migrate
|
48
|
+
expect(subject.dump).to match_fuzzy expected_dsl
|
49
|
+
|
50
|
+
expect(show_create_table_mysql('dept_emp')).to match_fuzzy <<-EOS
|
51
|
+
CREATE TABLE `dept_emp` (
|
52
|
+
`id` int(11) NOT NULL AUTO_INCREMENT,
|
53
|
+
`emp_no0` int(11) NOT NULL,
|
54
|
+
`emp_no` int(11) NOT NULL,
|
55
|
+
`dept_no` varchar(4) NOT NULL,
|
56
|
+
`from_date` date NOT NULL,
|
57
|
+
`to_date` date NOT NULL,
|
58
|
+
PRIMARY KEY (`id`)
|
59
|
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8
|
60
|
+
EOS
|
61
|
+
}
|
62
|
+
end
|
63
|
+
|
64
|
+
context 'when add column to first (no id)' do
|
65
|
+
let(:actual_dsl) {
|
66
|
+
erbh(<<-EOS, template_variables)
|
67
|
+
create_table "dept_emp", id: false, force: :cascade do |t|
|
68
|
+
t.integer "emp_no", <%= i limit(4) + {null: false} %>
|
69
|
+
t.string "dept_no", limit: 4, null: false
|
70
|
+
t.date "from_date", null: false
|
71
|
+
t.date "to_date", null: false
|
72
|
+
end
|
73
|
+
EOS
|
74
|
+
}
|
75
|
+
|
76
|
+
let(:expected_dsl) {
|
77
|
+
erbh(<<-EOS, template_variables)
|
78
|
+
create_table "dept_emp", id: false, force: :cascade do |t|
|
79
|
+
t.integer "emp_no0", <%= i limit(4) + {null: false} %>
|
80
|
+
t.integer "emp_no", <%= i limit(4) + {null: false} %>
|
81
|
+
t.string "dept_no", limit: 4, null: false
|
82
|
+
t.date "from_date", null: false
|
83
|
+
t.date "to_date", null: false
|
84
|
+
end
|
85
|
+
EOS
|
86
|
+
}
|
87
|
+
|
88
|
+
before { subject.diff(actual_dsl).migrate }
|
89
|
+
subject { client }
|
90
|
+
|
91
|
+
it {
|
92
|
+
delta = subject.diff(expected_dsl)
|
93
|
+
expect(delta.differ?).to be_truthy
|
94
|
+
expect(subject.dump).to match_fuzzy actual_dsl
|
95
|
+
delta.migrate
|
96
|
+
expect(subject.dump).to match_fuzzy expected_dsl
|
97
|
+
|
98
|
+
expect(show_create_table_mysql('dept_emp')).to match_fuzzy <<-EOS
|
99
|
+
CREATE TABLE `dept_emp` (
|
100
|
+
`emp_no0` int(11) NOT NULL,
|
101
|
+
`emp_no` int(11) NOT NULL,
|
102
|
+
`dept_no` varchar(4) NOT NULL,
|
103
|
+
`from_date` date NOT NULL,
|
104
|
+
`to_date` date NOT NULL
|
105
|
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8
|
106
|
+
EOS
|
107
|
+
}
|
108
|
+
end
|
109
|
+
|
110
|
+
context 'when add column to first (with pk)' do
|
111
|
+
let(:actual_dsl) {
|
112
|
+
erbh(<<-EOS, template_variables)
|
113
|
+
create_table "dept_emp", primary_key: "emp_no", force: :cascade do |t|
|
114
|
+
t.string "dept_no", limit: 4, null: false
|
115
|
+
t.date "from_date", null: false
|
116
|
+
t.date "to_date", null: false
|
117
|
+
end
|
118
|
+
EOS
|
119
|
+
}
|
120
|
+
|
121
|
+
let(:expected_dsl) {
|
122
|
+
erbh(<<-EOS, template_variables)
|
123
|
+
create_table "dept_emp", primary_key: "emp_no", force: :cascade do |t|
|
124
|
+
t.integer "emp_no0", <%= i limit(4) + {null: false} %>
|
125
|
+
t.string "dept_no", limit: 4, null: false
|
126
|
+
t.date "from_date", null: false
|
127
|
+
t.date "to_date", null: false
|
128
|
+
end
|
129
|
+
EOS
|
130
|
+
}
|
131
|
+
|
132
|
+
before { subject.diff(actual_dsl).migrate }
|
133
|
+
subject { client }
|
134
|
+
|
135
|
+
it {
|
136
|
+
delta = subject.diff(expected_dsl)
|
137
|
+
expect(delta.differ?).to be_truthy
|
138
|
+
expect(subject.dump).to match_fuzzy actual_dsl
|
139
|
+
delta.migrate
|
140
|
+
expect(subject.dump).to match_fuzzy expected_dsl
|
141
|
+
|
142
|
+
expect(show_create_table_mysql('dept_emp')).to match_fuzzy <<-EOS
|
143
|
+
CREATE TABLE `dept_emp` (
|
144
|
+
`emp_no` int(11) NOT NULL AUTO_INCREMENT,
|
145
|
+
`emp_no0` int(11) NOT NULL,
|
146
|
+
`dept_no` varchar(4) NOT NULL,
|
147
|
+
`from_date` date NOT NULL,
|
148
|
+
`to_date` date NOT NULL,
|
149
|
+
PRIMARY KEY (`emp_no`)
|
150
|
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8
|
151
|
+
EOS
|
152
|
+
}
|
153
|
+
end
|
154
|
+
|
155
|
+
context 'when add column to first (with multiple pk)' do
|
156
|
+
let(:actual_dsl) {
|
157
|
+
erbh(<<-EOS, template_variables)
|
158
|
+
create_table "dept_emp", primary_key: ["emp_no1", "emp_no2"], force: :cascade do |t|
|
159
|
+
t.integer "emp_no1", null: false
|
160
|
+
t.integer "emp_no2", null: false
|
161
|
+
t.string "dept_no", limit: 4, null: false
|
162
|
+
t.date "from_date", null: false
|
163
|
+
t.date "to_date", null: false
|
164
|
+
end
|
165
|
+
EOS
|
166
|
+
}
|
167
|
+
|
168
|
+
let(:expected_dsl) {
|
169
|
+
erbh(<<-EOS, template_variables)
|
170
|
+
create_table "dept_emp", primary_key: ["emp_no1", "emp_no2"], force: :cascade do |t|
|
171
|
+
t.integer "emp_no1", null: false
|
172
|
+
t.integer "emp_no2", null: false
|
173
|
+
t.integer "emp_no0", null: false
|
174
|
+
t.string "dept_no", limit: 4, null: false
|
175
|
+
t.date "from_date", null: false
|
176
|
+
t.date "to_date", null: false
|
177
|
+
end
|
178
|
+
EOS
|
179
|
+
}
|
180
|
+
|
181
|
+
before { subject.diff(actual_dsl).migrate }
|
182
|
+
subject { client }
|
183
|
+
|
184
|
+
it {
|
185
|
+
skip if condition(:activerecord_4)
|
186
|
+
|
187
|
+
delta = subject.diff(expected_dsl)
|
188
|
+
expect(delta.differ?).to be_truthy
|
189
|
+
expect(subject.dump).to match_fuzzy actual_dsl
|
190
|
+
delta.migrate
|
191
|
+
expect(subject.dump).to match_fuzzy expected_dsl
|
192
|
+
|
193
|
+
expect(show_create_table_mysql('dept_emp')).to match_fuzzy <<-EOS
|
194
|
+
CREATE TABLE `dept_emp` (
|
195
|
+
`emp_no1` int(11) NOT NULL,
|
196
|
+
`emp_no2` int(11) NOT NULL,
|
197
|
+
`emp_no0` int(11) NOT NULL,
|
198
|
+
`dept_no` varchar(4) NOT NULL,
|
199
|
+
`from_date` date NOT NULL,
|
200
|
+
`to_date` date NOT NULL,
|
201
|
+
PRIMARY KEY (`emp_no1`,`emp_no2`)
|
202
|
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8
|
203
|
+
EOS
|
204
|
+
}
|
205
|
+
end
|
206
|
+
|
207
|
+
context 'when add column to first (with multiple pk2)' do
|
208
|
+
let(:actual_dsl) {
|
209
|
+
erbh(<<-EOS, template_variables)
|
210
|
+
create_table "dept_emp", primary_key: ["emp_no1", "emp_no2"], force: :cascade do |t|
|
211
|
+
t.integer "emp_no1", null: false
|
212
|
+
t.integer "emp_no2", null: false
|
213
|
+
t.string "dept_no", limit: 4, null: false
|
214
|
+
t.date "from_date", null: false
|
215
|
+
t.date "to_date", null: false
|
216
|
+
end
|
217
|
+
EOS
|
218
|
+
}
|
219
|
+
|
220
|
+
let(:expected_dsl) {
|
221
|
+
erbh(<<-EOS, template_variables)
|
222
|
+
create_table "dept_emp", primary_key: ["emp_no1", "emp_no2"], force: :cascade do |t|
|
223
|
+
t.integer "emp_no0", null: false
|
224
|
+
t.integer "emp_no1", null: false
|
225
|
+
t.integer "emp_no2", null: false
|
226
|
+
t.string "dept_no", limit: 4, null: false
|
227
|
+
t.date "from_date", null: false
|
228
|
+
t.date "to_date", null: false
|
229
|
+
end
|
230
|
+
EOS
|
231
|
+
}
|
232
|
+
|
233
|
+
before { subject.diff(actual_dsl).migrate }
|
234
|
+
subject { client }
|
235
|
+
|
236
|
+
it {
|
237
|
+
skip if condition(:activerecord_4)
|
238
|
+
|
239
|
+
delta = subject.diff(expected_dsl)
|
240
|
+
expect(delta.differ?).to be_truthy
|
241
|
+
expect(subject.dump).to match_fuzzy actual_dsl
|
242
|
+
delta.migrate
|
243
|
+
expect(subject.dump).to match_fuzzy expected_dsl
|
244
|
+
|
245
|
+
expect(show_create_table_mysql('dept_emp')).to match_fuzzy <<-EOS
|
246
|
+
CREATE TABLE `dept_emp` (
|
247
|
+
`emp_no0` int(11) NOT NULL,
|
248
|
+
`emp_no1` int(11) NOT NULL,
|
249
|
+
`emp_no2` int(11) NOT NULL,
|
250
|
+
`dept_no` varchar(4) NOT NULL,
|
251
|
+
`from_date` date NOT NULL,
|
252
|
+
`to_date` date NOT NULL,
|
253
|
+
PRIMARY KEY (`emp_no1`,`emp_no2`)
|
254
|
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8
|
255
|
+
EOS
|
256
|
+
}
|
257
|
+
end
|
258
|
+
end
|
@@ -1,7 +1,27 @@
|
|
1
1
|
describe 'Ridgepole::Client#diff -> migrate' do
|
2
|
+
let(:template_variables) {
|
3
|
+
opts = {
|
4
|
+
dept_manager_pk: {primary_key: ["emp_no", "dept_no"]},
|
5
|
+
dept_emp_pk: {primary_key: ["emp_no", "dept_no"]},
|
6
|
+
salaries_pk: {primary_key: ["emp_no", "from_date"]},
|
7
|
+
titles_pk: {primary_key: ["emp_no", "title", "from_date"]},
|
8
|
+
}
|
9
|
+
|
10
|
+
if condition(:activerecord_4)
|
11
|
+
opts.merge!(
|
12
|
+
dept_manager_pk: {id: false},
|
13
|
+
dept_emp_pk: {id: false},
|
14
|
+
salaries_pk: {id: false},
|
15
|
+
titles_pk: {id: false}
|
16
|
+
)
|
17
|
+
end
|
18
|
+
|
19
|
+
opts
|
20
|
+
}
|
21
|
+
|
2
22
|
context 'when create table' do
|
3
23
|
let(:dsl) {
|
4
|
-
erbh(<<-EOS)
|
24
|
+
erbh(<<-EOS, template_variables)
|
5
25
|
create_table "clubs", <%= i unsigned(true) + {force: :cascade} %> do |t|
|
6
26
|
t.string "name", <%= i limit(255) + {default: "", null: false} %>
|
7
27
|
end
|
@@ -14,7 +34,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
14
34
|
|
15
35
|
<%= add_index "departments", ["dept_name"], name: "dept_name", unique: true, using: :btree %>
|
16
36
|
|
17
|
-
create_table "dept_emp",
|
37
|
+
create_table "dept_emp", <%= i @dept_emp_pk %>, force: :cascade do |t|
|
18
38
|
t.integer "emp_no", <%= i limit(4) + {null: false} %>
|
19
39
|
t.string "dept_no", <%= i limit(4) + {null: false} %>
|
20
40
|
t.date "from_date", null: false
|
@@ -24,7 +44,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
24
44
|
<%= add_index "dept_emp", ["dept_no"], name: "dept_no", using: :btree %>
|
25
45
|
<%= add_index "dept_emp", ["emp_no"], name: "emp_no", using: :btree %>
|
26
46
|
|
27
|
-
create_table "dept_manager",
|
47
|
+
create_table "dept_manager", <%= i @dept_manager_pk %>, force: :cascade do |t|
|
28
48
|
t.string "dept_no", <%= i limit(4) + {null: false} %>
|
29
49
|
t.integer "emp_no", <%= i limit(4) + {null: false} %>
|
30
50
|
t.date "from_date", null: false
|
@@ -49,7 +69,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
49
69
|
t.date "hire_date", null: false
|
50
70
|
end
|
51
71
|
|
52
|
-
create_table "salaries",
|
72
|
+
create_table "salaries", <%= i @salaries_pk %>, force: :cascade do |t|
|
53
73
|
t.integer "emp_no", <%= i limit(4) + {null: false} %>
|
54
74
|
t.integer "salary", <%= i limit(4) + {null: false} %>
|
55
75
|
t.date "from_date", null: false
|
@@ -58,7 +78,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
58
78
|
|
59
79
|
<%= add_index "salaries", ["emp_no"], name: "emp_no", using: :btree %>
|
60
80
|
|
61
|
-
create_table "titles",
|
81
|
+
create_table "titles", <%= i @titles_pk %>, force: :cascade do |t|
|
62
82
|
t.integer "emp_no", <%= i limit(4) + {null: false} %>
|
63
83
|
t.string "title", limit: 50, null: false
|
64
84
|
t.date "from_date", null: false
|
@@ -70,14 +90,14 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
70
90
|
}
|
71
91
|
|
72
92
|
let(:actual_dsl) {
|
73
|
-
erbh(<<-EOS)
|
93
|
+
erbh(<<-EOS, template_variables)
|
74
94
|
create_table "departments", primary_key: "dept_no", <%= i unsigned(true) + {force: :cascade} %> do |t|
|
75
95
|
t.string "dept_name", limit: 40, null: false
|
76
96
|
end
|
77
97
|
|
78
98
|
<%= add_index "departments", ["dept_name"], name: "dept_name", unique: true, using: :btree %>
|
79
99
|
|
80
|
-
create_table "dept_emp",
|
100
|
+
create_table "dept_emp", <%= i @dept_emp_pk %>, force: :cascade do |t|
|
81
101
|
t.integer "emp_no", <%= i limit(4) + {null: false} %>
|
82
102
|
t.string "dept_no", <%= i limit(4) + {null: false} %>
|
83
103
|
t.date "from_date", null: false
|
@@ -87,7 +107,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
87
107
|
<%= add_index "dept_emp", ["dept_no"], name: "dept_no", using: :btree %>
|
88
108
|
<%= add_index "dept_emp", ["emp_no"], name: "emp_no", using: :btree %>
|
89
109
|
|
90
|
-
create_table "dept_manager",
|
110
|
+
create_table "dept_manager", <%= i @dept_manager_pk %>, force: :cascade do |t|
|
91
111
|
t.string "dept_no", <%= i limit(4) + {null: false} %>
|
92
112
|
t.integer "emp_no", <%= i limit(4) + {null: false} %>
|
93
113
|
t.date "from_date", null: false
|
@@ -97,7 +117,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
97
117
|
<%= add_index "dept_manager", ["dept_no"], name: "dept_no", using: :btree %>
|
98
118
|
<%= add_index "dept_manager", ["emp_no"], name: "emp_no", using: :btree %>
|
99
119
|
|
100
|
-
create_table "salaries",
|
120
|
+
create_table "salaries", <%= i @salaries_pk %>, force: :cascade do |t|
|
101
121
|
t.integer "emp_no", <%= i limit(4) + {null: false} %>
|
102
122
|
t.integer "salary", <%= i limit(4) + {null: false} %>
|
103
123
|
t.date "from_date", null: false
|
@@ -106,7 +126,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
106
126
|
|
107
127
|
<%= add_index "salaries", ["emp_no"], name: "emp_no", using: :btree %>
|
108
128
|
|
109
|
-
create_table "titles",
|
129
|
+
create_table "titles", <%= i @titles_pk %>, force: :cascade do |t|
|
110
130
|
t.integer "emp_no", <%= i limit(4) + {null: false} %>
|
111
131
|
t.string "title", limit: 50, null: false
|
112
132
|
t.date "from_date", null: false
|
@@ -1,7 +1,27 @@
|
|
1
1
|
describe 'Ridgepole::Client#diff -> migrate' do
|
2
|
+
let(:template_variables) {
|
3
|
+
opts = {
|
4
|
+
dept_manager_pk: {primary_key: ["emp_no", "dept_no"]},
|
5
|
+
dept_emp_pk: {primary_key: ["emp_no", "dept_no"]},
|
6
|
+
salaries_pk: {primary_key: ["emp_no", "from_date"]},
|
7
|
+
titles_pk: {primary_key: ["emp_no", "title", "from_date"]},
|
8
|
+
}
|
9
|
+
|
10
|
+
if condition(:activerecord_4)
|
11
|
+
opts.merge!(
|
12
|
+
dept_manager_pk: {id: false},
|
13
|
+
dept_emp_pk: {id: false},
|
14
|
+
salaries_pk: {id: false},
|
15
|
+
titles_pk: {id: false}
|
16
|
+
)
|
17
|
+
end
|
18
|
+
|
19
|
+
opts
|
20
|
+
}
|
21
|
+
|
2
22
|
context 'when create table' do
|
3
23
|
let(:dsl) {
|
4
|
-
erbh(<<-EOS)
|
24
|
+
erbh(<<-EOS, template_variables)
|
5
25
|
create_table "clubs", force: :cascade do |t|
|
6
26
|
t.string "name", limit: 255, default: "", null: false
|
7
27
|
end
|
@@ -12,7 +32,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
12
32
|
t.string "dept_name", limit: 40, null: false
|
13
33
|
end
|
14
34
|
|
15
|
-
create_table "dept_emp",
|
35
|
+
create_table "dept_emp", <%= i @dept_emp_pk %>, force: :cascade do |t|
|
16
36
|
t.integer "emp_no", null: false
|
17
37
|
t.string "dept_no", limit: 4, null: false
|
18
38
|
t.date "from_date", null: false
|
@@ -22,7 +42,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
22
42
|
<%= add_index "dept_emp", ["dept_no"], name: "idx_dept_emp_dept_no", using: :btree %>
|
23
43
|
<%= add_index "dept_emp", ["emp_no"], name: "idx_dept_emp_emp_no", using: :btree %>
|
24
44
|
|
25
|
-
create_table "dept_manager",
|
45
|
+
create_table "dept_manager", <%= i @dept_manager_pk %>, force: :cascade do |t|
|
26
46
|
t.string "dept_no", limit: 4, null: false
|
27
47
|
t.integer "emp_no", null: false
|
28
48
|
t.date "from_date", null: false
|
@@ -46,7 +66,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
46
66
|
t.date "hire_date", null: false
|
47
67
|
end
|
48
68
|
|
49
|
-
create_table "salaries",
|
69
|
+
create_table "salaries", <%= i @salaries_pk %>, force: :cascade do |t|
|
50
70
|
t.integer "emp_no", null: false
|
51
71
|
t.integer "salary", null: false
|
52
72
|
t.date "from_date", null: false
|
@@ -55,7 +75,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
55
75
|
|
56
76
|
<%= add_index "salaries", ["emp_no"], name: "idx_salaries_emp_no", using: :btree %>
|
57
77
|
|
58
|
-
create_table "titles",
|
78
|
+
create_table "titles", <%= i @titles_pk %>, force: :cascade do |t|
|
59
79
|
t.integer "emp_no", null: false
|
60
80
|
t.string "title", limit: 50, null: false
|
61
81
|
t.date "from_date", null: false
|
@@ -67,12 +87,12 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
67
87
|
}
|
68
88
|
|
69
89
|
let(:actual_dsl) {
|
70
|
-
erbh(<<-EOS)
|
90
|
+
erbh(<<-EOS, template_variables)
|
71
91
|
create_table "departments", primary_key: "dept_no", force: :cascade do |t|
|
72
92
|
t.string "dept_name", limit: 40, null: false
|
73
93
|
end
|
74
94
|
|
75
|
-
create_table "dept_emp",
|
95
|
+
create_table "dept_emp", <%= i @dept_emp_pk %>, force: :cascade do |t|
|
76
96
|
t.integer "emp_no", null: false
|
77
97
|
t.string "dept_no", limit: 4, null: false
|
78
98
|
t.date "from_date", null: false
|
@@ -82,7 +102,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
82
102
|
<%= add_index "dept_emp", ["dept_no"], name: "idx_dept_emp_dept_no", using: :btree %>
|
83
103
|
<%= add_index "dept_emp", ["emp_no"], name: "idx_dept_emp_emp_no", using: :btree %>
|
84
104
|
|
85
|
-
create_table "dept_manager",
|
105
|
+
create_table "dept_manager", <%= i @dept_manager_pk %>, force: :cascade do |t|
|
86
106
|
t.string "dept_no", limit: 4, null: false
|
87
107
|
t.integer "emp_no", null: false
|
88
108
|
t.date "from_date", null: false
|
@@ -92,7 +112,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
92
112
|
<%= add_index "dept_manager", ["dept_no"], name: "idx_dept_manager_dept_no", using: :btree %>
|
93
113
|
<%= add_index "dept_manager", ["emp_no"], name: "idx_dept_manager_emp_no", using: :btree %>
|
94
114
|
|
95
|
-
create_table "salaries",
|
115
|
+
create_table "salaries", <%= i @salaries_pk %>, force: :cascade do |t|
|
96
116
|
t.integer "emp_no", null: false
|
97
117
|
t.integer "salary", null: false
|
98
118
|
t.date "from_date", null: false
|
@@ -101,7 +121,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
101
121
|
|
102
122
|
<%= add_index "salaries", ["emp_no"], name: "idx_salaries_emp_no", using: :btree %>
|
103
123
|
|
104
|
-
create_table "titles",
|
124
|
+
create_table "titles", <%= i @titles_pk %>, force: :cascade do |t|
|
105
125
|
t.integer "emp_no", null: false
|
106
126
|
t.string "title", limit: 50, null: false
|
107
127
|
t.date "from_date", null: false
|
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.5.
|
4
|
+
version: 0.6.5.beta13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Genki Sugawara
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-09-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -257,6 +257,7 @@ files:
|
|
257
257
|
- spec/mysql/fk/migrate_drop_fk_spec.rb
|
258
258
|
- spec/mysql/migrate/check_orphan_index_spec.rb
|
259
259
|
- spec/mysql/migrate/migrate_add_column2_spec.rb
|
260
|
+
- spec/mysql/migrate/migrate_add_column_order_spec.rb
|
260
261
|
- spec/mysql/migrate/migrate_add_column_spec.rb
|
261
262
|
- spec/mysql/migrate/migrate_add_column_with_alter_extra_spec.rb
|
262
263
|
- spec/mysql/migrate/migrate_add_column_with_script_spec.rb
|
@@ -364,7 +365,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
364
365
|
version: 1.3.1
|
365
366
|
requirements: []
|
366
367
|
rubyforge_project:
|
367
|
-
rubygems_version: 2.
|
368
|
+
rubygems_version: 2.6.6
|
368
369
|
signing_key:
|
369
370
|
specification_version: 4
|
370
371
|
summary: Ridgepole is a tool to manage DB schema.
|
@@ -388,6 +389,7 @@ test_files:
|
|
388
389
|
- spec/mysql/fk/migrate_drop_fk_spec.rb
|
389
390
|
- spec/mysql/migrate/check_orphan_index_spec.rb
|
390
391
|
- spec/mysql/migrate/migrate_add_column2_spec.rb
|
392
|
+
- spec/mysql/migrate/migrate_add_column_order_spec.rb
|
391
393
|
- spec/mysql/migrate/migrate_add_column_spec.rb
|
392
394
|
- spec/mysql/migrate/migrate_add_column_with_alter_extra_spec.rb
|
393
395
|
- spec/mysql/migrate/migrate_add_column_with_script_spec.rb
|