ridgepole 0.8.4 → 0.8.9
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/.rubocop.yml +38 -4
- data/.travis.yml +5 -7
- data/README.md +13 -1
- data/bin/ridgepole +4 -2
- data/lib/ridgepole/cli/config.rb +5 -3
- data/lib/ridgepole/delta.rb +29 -22
- data/lib/ridgepole/diff.rb +13 -1
- data/lib/ridgepole/dsl_parser.rb +2 -1
- data/lib/ridgepole/dsl_parser/context.rb +5 -2
- data/lib/ridgepole/external_sql_executer.rb +1 -1
- data/lib/ridgepole/version.rb +1 -1
- data/spec/dsl_parser/context_spec.rb +16 -0
- data/spec/fixtures/for_require_relative_spec.rb +3 -0
- data/spec/mysql/cli/config_spec.rb +54 -1
- data/spec/mysql/cli/ridgepole_spec.rb +1 -0
- data/spec/mysql/collation/collation_spec.rb +6 -0
- data/spec/mysql/diff/diff2_spec.rb +3 -3
- data/spec/mysql/diff/diff_spec.rb +3 -3
- data/spec/mysql/fk/migrate_create_fk_spec.rb +27 -7
- data/spec/mysql/fk/migrate_drop_fk_spec.rb +1 -1
- data/spec/mysql/fk/migrate_fk_with_column_spec.rb +2 -2
- data/spec/mysql/migrate/migrate_add_column_spec.rb +5 -5
- data/spec/mysql/migrate/migrate_change_column8_spec.rb +1 -1
- data/spec/mysql/migrate/migrate_change_column_spec.rb +5 -5
- data/spec/mysql/migrate/migrate_change_index_spec.rb +9 -9
- data/spec/mysql/migrate/migrate_change_table_comment_spec.rb +1 -1
- data/spec/mysql/migrate/migrate_change_table_option_spec.rb +1 -1
- data/spec/mysql/migrate/migrate_create_index_spec.rb +6 -6
- data/spec/mysql/migrate/migrate_create_table_with_index_spec.rb +7 -7
- data/spec/mysql/migrate/migrate_create_table_with_options_spec.rb +8 -8
- data/spec/mysql/migrate/migrate_drop_column_and_index_spec.rb +4 -4
- data/spec/mysql/migrate/migrate_drop_column_spec.rb +3 -3
- data/spec/mysql/migrate/migrate_drop_index_spec.rb +6 -6
- data/spec/mysql/migrate/migrate_rename_column_spec.rb +3 -3
- data/spec/mysql/migrate/migrate_script_error_spec.rb +1 -1
- data/spec/mysql/text_blob_types/text_blob_types_spec.rb +4 -1
- data/spec/mysql/~default_name_fk/migrate_create_fk_spec.rb +1 -1
- data/spec/mysql/~default_name_fk/migrate_drop_fk_spec.rb +1 -1
- data/spec/mysql/~dump_auto_increment/migrate_create_table_with_index_spec.rb +7 -7
- data/spec/postgresql/diff/diff_spec.rb +2 -2
- data/spec/postgresql/fk/migrate_create_fk_spec.rb +2 -2
- data/spec/postgresql/fk/migrate_drop_fk_spec.rb +1 -1
- data/spec/postgresql/migrate/migrate_add_column_spec.rb +5 -5
- data/spec/postgresql/migrate/migrate_change_column_spec.rb +4 -4
- data/spec/postgresql/migrate/migrate_change_index_spec.rb +9 -9
- data/spec/postgresql/migrate/migrate_drop_column_spec.rb +3 -3
- data/spec/postgresql/migrate/migrate_drop_column_with_index_spec.rb +5 -5
- data/spec/postgresql/migrate/migrate_drop_expression_index_spec.rb +1 -1
- data/spec/postgresql/migrate/migrate_drop_index_spec.rb +6 -6
- data/spec/postgresql/migrate/migrate_rename_column_spec.rb +2 -2
- data/spec/postgresql/~default_name_fk/migrate_create_fk_spec.rb +1 -1
- data/spec/postgresql/~default_name_fk/migrate_drop_fk_spec.rb +1 -1
- data/spec/spec_condition.rb +0 -4
- metadata +6 -2
@@ -138,6 +138,12 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
138
138
|
opts = ['--dump-without-table-options']
|
139
139
|
out, status = run_ridgepole('--diff', "'#{JSON.dump(conn_spec)}'", f.path, *opts)
|
140
140
|
|
141
|
+
# v6.0.3 is the oldest version that doesn't produce any kwargs warnings with Ruby 2.7
|
142
|
+
if condition('< 6.0.3')
|
143
|
+
# https://github.com/jeremyevans/ruby-warning/blob/1.1.0/lib/warning.rb#L18
|
144
|
+
out = out.lines.grep_v(/: warning: (?:Using the last argument (?:for `.+' )?as keyword parameters is deprecated; maybe \*\* should be added to the call|Passing the keyword argument (?:for `.+' )?as the last hash parameter is deprecated|Splitting the last argument (?:for `.+' )?into positional and keyword parameters is deprecated|The called method (?:`.+' )?is defined here)\n\z/).join('')
|
145
|
+
end
|
146
|
+
|
141
147
|
expect(out).to be_empty
|
142
148
|
expect(status.success?).to be_truthy
|
143
149
|
end
|
@@ -175,10 +175,10 @@ describe 'Ridgepole::Client.diff' do
|
|
175
175
|
delta = subject.diff(actual_dsl, expected_dsl)
|
176
176
|
expect(delta.differ?).to be_truthy
|
177
177
|
expect(delta.script).to match_ruby erbh(<<-ERB)
|
178
|
-
change_column("employee_clubs", "club_id", :integer,
|
178
|
+
change_column("employee_clubs", "club_id", :integer, **<%= {:unsigned=>false, :null=>true, :default=>nil} + cond('>= 5.1', comment: nil) %>)
|
179
179
|
|
180
|
-
change_column("employees", "last_name", :string,
|
181
|
-
change_column("employees", "gender", :string,
|
180
|
+
change_column("employees", "last_name", :string, **<%= {:limit=>20, :default=>"XXX", :unsigned=>false} + cond('>= 5.1', comment: nil) %>)
|
181
|
+
change_column("employees", "gender", :string, **<%= {:limit=>2, :null=>false, :default=>nil, :unsigned=>false} + cond('>= 5.1', comment: nil) %>)
|
182
182
|
ERB
|
183
183
|
}
|
184
184
|
|
@@ -149,10 +149,10 @@ describe 'Ridgepole::Client.diff' do
|
|
149
149
|
delta = subject.diff(actual_dsl, expected_dsl)
|
150
150
|
expect(delta.differ?).to be_truthy
|
151
151
|
expect(delta.script).to match_ruby erbh(<<-ERB)
|
152
|
-
change_column("employee_clubs", "club_id", :integer,
|
152
|
+
change_column("employee_clubs", "club_id", :integer, **<%= {:unsigned=>false, :null=>true, :default=>nil} + cond('>= 5.1', comment: nil) %>)
|
153
153
|
|
154
|
-
change_column("employees", "last_name", :string,
|
155
|
-
change_column("employees", "gender", :string,
|
154
|
+
change_column("employees", "last_name", :string, **<%= {:limit=>20, :default=>"XXX", :unsigned=>false} + cond('>= 5.1', comment: nil) %>)
|
155
|
+
change_column("employees", "gender", :string, **<%= {:limit=>2, :null=>false, :default=>nil, :unsigned=>false} + cond('>= 5.1', comment: nil) %>)
|
156
156
|
ERB
|
157
157
|
}
|
158
158
|
end
|
@@ -36,7 +36,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
36
36
|
expect(delta.differ?).to be_truthy
|
37
37
|
expect(subject.dump).to match_ruby actual_dsl
|
38
38
|
expect(delta.script).to match_fuzzy <<-RUBY
|
39
|
-
add_foreign_key("child", "parent", {:name=>"child_ibfk_1"})
|
39
|
+
add_foreign_key("child", "parent", **{:name=>"child_ibfk_1"})
|
40
40
|
RUBY
|
41
41
|
delta.migrate
|
42
42
|
expect(subject.dump).to match_ruby expected_dsl
|
@@ -144,7 +144,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
144
144
|
expect(delta.differ?).to be_truthy
|
145
145
|
expect(subject.dump).to match_ruby actual_dsl
|
146
146
|
expect(delta.script).to match_fuzzy <<-RUBY
|
147
|
-
add_foreign_key("child", "parent", {})
|
147
|
+
add_foreign_key("child", "parent", **{})
|
148
148
|
RUBY
|
149
149
|
delta.migrate
|
150
150
|
expect(subject.dump).to match_ruby expected_dsl
|
@@ -188,13 +188,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
188
188
|
it {
|
189
189
|
expect(Ridgepole::Logger.instance).to receive(:warn).with(<<-MSG).twice
|
190
190
|
[WARNING] Table `child` has a foreign key on `parent_id` column, but doesn't have any indexes on the column.
|
191
|
-
Although an index will be added automatically by InnoDB, please add an index explicitly
|
191
|
+
Although an index will be added automatically by InnoDB, please add an index explicitly before the next operation.
|
192
192
|
MSG
|
193
193
|
subject.diff(dsl).migrate
|
194
194
|
|
195
|
-
expect
|
196
|
-
subject.diff(dsl).migrate
|
197
|
-
end.to raise_error(/Mysql2::Error: Cannot drop index/)
|
195
|
+
expect(subject.diff(dsl).differ?).to be_truthy
|
198
196
|
}
|
199
197
|
end
|
200
198
|
|
@@ -219,7 +217,29 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
219
217
|
expect(Ridgepole::Logger.instance).to_not receive(:warn)
|
220
218
|
subject.diff(dsl).migrate
|
221
219
|
|
222
|
-
expect
|
220
|
+
expect(subject.diff(dsl).differ?).to be_falsey
|
221
|
+
}
|
222
|
+
end
|
223
|
+
|
224
|
+
context 'when create fk on the primary key' do
|
225
|
+
let(:dsl) do
|
226
|
+
erbh(<<-ERB)
|
227
|
+
create_table "users", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t|
|
228
|
+
end
|
229
|
+
|
230
|
+
create_table "icons", primary_key: "user_id", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t|
|
231
|
+
end
|
232
|
+
add_foreign_key "icons", "users", name: "fk_icons_users"
|
233
|
+
ERB
|
234
|
+
end
|
235
|
+
|
236
|
+
subject { client(dump_without_table_options: false) }
|
237
|
+
|
238
|
+
it {
|
239
|
+
expect(Ridgepole::Logger.instance).to_not receive(:warn)
|
240
|
+
subject.diff(dsl).migrate
|
241
|
+
|
242
|
+
expect(subject.diff(dsl).differ?).to be_falsey
|
223
243
|
}
|
224
244
|
end
|
225
245
|
end
|
@@ -50,7 +50,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
50
50
|
expect(delta.differ?).to be_truthy
|
51
51
|
expect(subject.dump).to match_fuzzy sorted_actual_dsl
|
52
52
|
expect(delta.script).to match_fuzzy <<-RUBY
|
53
|
-
remove_foreign_key("child",
|
53
|
+
remove_foreign_key("child", name: "child_ibfk_1")
|
54
54
|
RUBY
|
55
55
|
delta.migrate
|
56
56
|
expect(subject.dump).to match_ruby expected_dsl
|
@@ -44,8 +44,8 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
44
44
|
expect(delta.differ?).to be_truthy
|
45
45
|
expect(subject.dump).to match_ruby actual_dsl
|
46
46
|
expect(delta.script).to match_fuzzy <<-RUBY
|
47
|
-
add_foreign_key("direct_messages", "users", {:column=>"reciever_id"})
|
48
|
-
add_foreign_key("direct_messages", "users", {:column=>"sender_id"})
|
47
|
+
add_foreign_key("direct_messages", "users", **{:column=>"reciever_id"})
|
48
|
+
add_foreign_key("direct_messages", "users", **{:column=>"sender_id"})
|
49
49
|
RUBY
|
50
50
|
delta.migrate
|
51
51
|
expect(subject.dump).to match_ruby expected_dsl
|
@@ -145,13 +145,13 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
145
145
|
expect(delta.differ?).to be_truthy
|
146
146
|
expect(subject.dump).to match_ruby actual_dsl
|
147
147
|
expect(delta.script).to match_fuzzy erbh(<<-ERB)
|
148
|
-
change_table("employee_clubs",
|
149
|
-
t.column("any_col", :string, {:null=>false, :after=>"club_id", :limit=>255})
|
148
|
+
change_table("employee_clubs", bulk: true) do |t|
|
149
|
+
t.column("any_col", :string, **{:null=>false, :after=>"club_id", :limit=>255})
|
150
150
|
end
|
151
151
|
|
152
|
-
change_table("employees",
|
153
|
-
t.column("age", :integer, {:null=>false, :after=>"hire_date", :limit=>4})
|
154
|
-
t.column("updated_at", :date, {:after=>"age"})
|
152
|
+
change_table("employees", bulk: true) do |t|
|
153
|
+
t.column("age", :integer, **{:null=>false, :after=>"hire_date", :limit=>4})
|
154
|
+
t.column("updated_at", :date, **{:after=>"age"})
|
155
155
|
end
|
156
156
|
ERB
|
157
157
|
delta.migrate
|
@@ -4,7 +4,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
4
4
|
before { subject.diff(actual_dsl).migrate }
|
5
5
|
subject { client(table_options: table_options, dump_without_table_options: dump_without_table_options) }
|
6
6
|
|
7
|
-
let(:warning_regexp) { /
|
7
|
+
let(:warning_regexp) { /Table option changes are ignored/ }
|
8
8
|
let(:dump_without_table_options) { false }
|
9
9
|
|
10
10
|
let(:actual_dsl) do
|
@@ -142,13 +142,13 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
142
142
|
expect(delta.differ?).to be_truthy
|
143
143
|
expect(subject.dump).to match_ruby actual_dsl
|
144
144
|
expect(delta.script).to match_fuzzy erbh(<<-ERB)
|
145
|
-
change_table("employee_clubs",
|
146
|
-
t.change("club_id", :integer,
|
145
|
+
change_table("employee_clubs", bulk: true) do |t|
|
146
|
+
t.change("club_id", :integer, **<%= {:null=>true, :default=>nil, :unsigned=>false} + cond('>= 5.1',comment: nil) %>)
|
147
147
|
end
|
148
148
|
|
149
|
-
change_table("employees",
|
150
|
-
t.change("last_name", :string,
|
151
|
-
t.change("gender", :string,
|
149
|
+
change_table("employees", bulk: true) do |t|
|
150
|
+
t.change("last_name", :string, **<%= {:limit=>20, :default=>"XXX", :unsigned=>false} + cond('>= 5.1',comment: nil) %>)
|
151
|
+
t.change("gender", :string, **<%= {:limit=>2, :null=>false, :default=>nil, :unsigned=>false} + cond('>= 5.1',comment: nil) %>)
|
152
152
|
end
|
153
153
|
ERB
|
154
154
|
delta.migrate
|
@@ -204,19 +204,19 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
204
204
|
expect(delta.differ?).to be_truthy
|
205
205
|
expect(subject.dump).to match_ruby actual_dsl
|
206
206
|
expect(delta.script).to match_fuzzy <<-RUBY
|
207
|
-
change_table("dept_emp",
|
208
|
-
t.remove_index(
|
209
|
-
t.index(["from_date"], {:name=>"emp_no", :using=>:btree, :unique=>false})
|
207
|
+
change_table("dept_emp", bulk: true) do |t|
|
208
|
+
t.remove_index(name: "emp_no")
|
209
|
+
t.index(["from_date"], **{:name=>"emp_no", :using=>:btree, :unique=>false})
|
210
210
|
end
|
211
211
|
|
212
|
-
change_table("dept_manager",
|
213
|
-
t.remove_index(
|
214
|
-
t.index(["from_date"], {:name=>"emp_no", :using=>:btree, :unique=>false})
|
212
|
+
change_table("dept_manager", bulk: true) do |t|
|
213
|
+
t.remove_index(name: "emp_no")
|
214
|
+
t.index(["from_date"], **{:name=>"emp_no", :using=>:btree, :unique=>false})
|
215
215
|
end
|
216
216
|
|
217
|
-
change_table("salaries",
|
218
|
-
t.remove_index(
|
219
|
-
t.index(["from_date"], {:name=>"emp_no", :using=>:btree, :unique=>false})
|
217
|
+
change_table("salaries", bulk: true) do |t|
|
218
|
+
t.remove_index(name: "emp_no")
|
219
|
+
t.index(["from_date"], **{:name=>"emp_no", :using=>:btree, :unique=>false})
|
220
220
|
end
|
221
221
|
RUBY
|
222
222
|
|
@@ -32,7 +32,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
32
32
|
|
33
33
|
it {
|
34
34
|
expect(Ridgepole::Logger.instance).to receive(:warn).with(<<-MSG)
|
35
|
-
[WARNING]
|
35
|
+
[WARNING] Table option changes are ignored on `employees`.
|
36
36
|
from: {:comment=>"old comment"}
|
37
37
|
to: {:comment=>"new comment"}
|
38
38
|
MSG
|
@@ -31,7 +31,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
31
31
|
|
32
32
|
it {
|
33
33
|
expect(Ridgepole::Logger.instance).to receive(:warn).with(<<-MSG)
|
34
|
-
[WARNING]
|
34
|
+
[WARNING] Table option changes are ignored on `employees`.
|
35
35
|
from: {:primary_key=>"emp_no"}
|
36
36
|
to: {:primary_key=>"emp_no2"}
|
37
37
|
MSG
|
@@ -141,16 +141,16 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
141
141
|
expect(delta.differ?).to be_truthy
|
142
142
|
expect(subject.dump).to match_ruby actual_dsl
|
143
143
|
expect(delta.script).to match_fuzzy erbh(<<-ERB)
|
144
|
-
change_table("clubs",
|
145
|
-
t.index(["name"],
|
144
|
+
change_table("clubs", bulk: true) do |t|
|
145
|
+
t.index(["name"], **<%= {:name=>"idx_name", :unique=>true} + cond(5.0, using: :btree) %>)
|
146
146
|
end
|
147
147
|
|
148
|
-
change_table("employee_clubs",
|
149
|
-
t.index(["emp_no", "club_id"],
|
148
|
+
change_table("employee_clubs", bulk: true) do |t|
|
149
|
+
t.index(["emp_no", "club_id"], **<%= {:name=>"idx_emp_no_club_id"} + cond(5.0, using: :btree) %>)
|
150
150
|
end
|
151
151
|
|
152
|
-
change_table("titles",
|
153
|
-
t.index(["emp_no"],
|
152
|
+
change_table("titles", bulk: true) do |t|
|
153
|
+
t.index(["emp_no"], **<%= {:name=>"emp_no"} + cond(5.0, using: :btree) %>)
|
154
154
|
end
|
155
155
|
ERB
|
156
156
|
delta.migrate
|
@@ -25,13 +25,13 @@ describe 'Ridgepole::Client#diff -> migrate (with index)' do
|
|
25
25
|
expect(delta.differ?).to be_truthy
|
26
26
|
|
27
27
|
expect(delta.script).to match_fuzzy erbh(<<-ERB)
|
28
|
-
create_table("dept_emp", {:primary_key=>["emp_no", "dept_no"]}) do |t|
|
29
|
-
t.column("emp_no", :"integer", {:null=>false, :limit=>4})
|
30
|
-
t.column("dept_no", :"string", {:null=>false, :limit=>255})
|
31
|
-
t.column("from_date", :"date", {:null=>false})
|
32
|
-
t.column("to_date", :"date", {:null=>false})
|
33
|
-
t.index(["dept_no"],
|
34
|
-
t.index(["emp_no"],
|
28
|
+
create_table("dept_emp", **{:primary_key=>["emp_no", "dept_no"]}) do |t|
|
29
|
+
t.column("emp_no", :"integer", **{:null=>false, :limit=>4})
|
30
|
+
t.column("dept_no", :"string", **{:null=>false, :limit=>255})
|
31
|
+
t.column("from_date", :"date", **{:null=>false})
|
32
|
+
t.column("to_date", :"date", **{:null=>false})
|
33
|
+
t.index(["dept_no"], **<%= {:name=>"dept_no"} + cond(5.0, using: :btree) %>)
|
34
|
+
t.index(["emp_no"], **<%= {:name=>"emp_no"} + cond(5.0, using: :btree) %>)
|
35
35
|
end
|
36
36
|
ERB
|
37
37
|
|
@@ -20,11 +20,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
20
20
|
expect(delta.differ?).to be_truthy
|
21
21
|
|
22
22
|
expect(delta.script).to match_fuzzy <<-RUBY
|
23
|
-
create_table("employee_clubs", {:options=>"ENGINE=MyISAM CHARSET=utf8"}) do |t|
|
24
|
-
t.column("emp_no", :"integer", {:null=>false, :unsigned=>true, :limit=>4})
|
25
|
-
t.column("club_id", :"integer", {:null=>false, :unsigned=>true, :limit=>4})
|
23
|
+
create_table("employee_clubs", **{:options=>"ENGINE=MyISAM CHARSET=utf8"}) do |t|
|
24
|
+
t.column("emp_no", :"integer", **{:null=>false, :unsigned=>true, :limit=>4})
|
25
|
+
t.column("club_id", :"integer", **{:null=>false, :unsigned=>true, :limit=>4})
|
26
26
|
end
|
27
|
-
add_index("employee_clubs", ["emp_no", "club_id"], {:name=>"idx_emp_no_club_id", :using=>:btree})
|
27
|
+
add_index("employee_clubs", ["emp_no", "club_id"], **{:name=>"idx_emp_no_club_id", :using=>:btree})
|
28
28
|
RUBY
|
29
29
|
}
|
30
30
|
end
|
@@ -48,11 +48,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
48
48
|
expect(delta.differ?).to be_truthy
|
49
49
|
|
50
50
|
expect(delta.script).to match_fuzzy <<-RUBY
|
51
|
-
create_table("employee_clubs", {:options=>"ENGINE=InnoDB CHARSET=utf8mb4"}) do |t|
|
52
|
-
t.column("emp_no", :"integer", {:null=>false, :unsigned=>true, :limit=>4})
|
53
|
-
t.column("club_id", :"integer", {:null=>false, :unsigned=>true, :limit=>4})
|
51
|
+
create_table("employee_clubs", **{:options=>"ENGINE=InnoDB CHARSET=utf8mb4"}) do |t|
|
52
|
+
t.column("emp_no", :"integer", **{:null=>false, :unsigned=>true, :limit=>4})
|
53
|
+
t.column("club_id", :"integer", **{:null=>false, :unsigned=>true, :limit=>4})
|
54
54
|
end
|
55
|
-
add_index("employee_clubs", ["emp_no", "club_id"], {:name=>"idx_emp_no_club_id", :using=>:btree})
|
55
|
+
add_index("employee_clubs", ["emp_no", "club_id"], **{:name=>"idx_emp_no_club_id", :using=>:btree})
|
56
56
|
RUBY
|
57
57
|
}
|
58
58
|
end
|
@@ -138,23 +138,23 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
138
138
|
expect(delta.differ?).to be_truthy
|
139
139
|
expect(subject.dump).to match_ruby actual_dsl
|
140
140
|
expect(delta.script).to match_fuzzy <<-RUBY
|
141
|
-
change_table("dept_emp",
|
141
|
+
change_table("dept_emp", bulk: true) do |t|
|
142
142
|
t.remove("emp_no")
|
143
143
|
t.remove("from_date")
|
144
144
|
t.remove("to_date")
|
145
145
|
end
|
146
146
|
|
147
|
-
change_table("dept_manager",
|
147
|
+
change_table("dept_manager", bulk: true) do |t|
|
148
148
|
t.remove("emp_no")
|
149
149
|
t.remove("from_date")
|
150
150
|
t.remove("to_date")
|
151
151
|
end
|
152
152
|
|
153
|
-
change_table("employee_clubs",
|
153
|
+
change_table("employee_clubs", bulk: true) do |t|
|
154
154
|
t.remove("club_id")
|
155
155
|
end
|
156
156
|
|
157
|
-
change_table("employees",
|
157
|
+
change_table("employees", bulk: true) do |t|
|
158
158
|
t.remove("last_name")
|
159
159
|
t.remove("gender")
|
160
160
|
t.remove("hire_date")
|
@@ -135,17 +135,17 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
135
135
|
expect(delta.differ?).to be_truthy
|
136
136
|
expect(subject.dump).to match_ruby actual_dsl
|
137
137
|
expect(delta.script).to match_fuzzy <<-RUBY
|
138
|
-
change_table("dept_emp",
|
138
|
+
change_table("dept_emp", bulk: true) do |t|
|
139
139
|
t.remove("from_date")
|
140
140
|
t.remove("to_date")
|
141
141
|
end
|
142
142
|
|
143
|
-
change_table("dept_manager",
|
143
|
+
change_table("dept_manager", bulk: true) do |t|
|
144
144
|
t.remove("from_date")
|
145
145
|
t.remove("to_date")
|
146
146
|
end
|
147
147
|
|
148
|
-
change_table("employees",
|
148
|
+
change_table("employees", bulk: true) do |t|
|
149
149
|
t.remove("last_name")
|
150
150
|
t.remove("gender")
|
151
151
|
t.remove("hire_date")
|
@@ -141,16 +141,16 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
141
141
|
expect(delta.differ?).to be_truthy
|
142
142
|
expect(subject.dump).to match_ruby actual_dsl
|
143
143
|
expect(delta.script).to match_fuzzy <<-RUBY
|
144
|
-
change_table("clubs",
|
145
|
-
t.remove_index(
|
144
|
+
change_table("clubs", bulk: true) do |t|
|
145
|
+
t.remove_index(name: "idx_name")
|
146
146
|
end
|
147
147
|
|
148
|
-
change_table("employee_clubs",
|
149
|
-
t.remove_index(
|
148
|
+
change_table("employee_clubs", bulk: true) do |t|
|
149
|
+
t.remove_index(name: "idx_emp_no_club_id")
|
150
150
|
end
|
151
151
|
|
152
|
-
change_table("titles",
|
153
|
-
t.remove_index(
|
152
|
+
change_table("titles", bulk: true) do |t|
|
153
|
+
t.remove_index(name: "emp_no")
|
154
154
|
end
|
155
155
|
RUBY
|
156
156
|
delta.migrate
|
@@ -142,15 +142,15 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
142
142
|
expect(delta.differ?).to be_truthy
|
143
143
|
expect(subject.dump).to match_ruby actual_dsl
|
144
144
|
expect(delta.script).to match_fuzzy <<-RUBY
|
145
|
-
change_table("dept_emp",
|
145
|
+
change_table("dept_emp", bulk: true) do |t|
|
146
146
|
t.rename("from_date", "from_date2")
|
147
147
|
end
|
148
148
|
|
149
|
-
change_table("dept_manager",
|
149
|
+
change_table("dept_manager", bulk: true) do |t|
|
150
150
|
t.rename("to_date", "to_date2")
|
151
151
|
end
|
152
152
|
|
153
|
-
change_table("employees",
|
153
|
+
change_table("employees", bulk: true) do |t|
|
154
154
|
t.rename("gender", "gender2")
|
155
155
|
end
|
156
156
|
RUBY
|
@@ -80,7 +80,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
80
80
|
expect(subject.dump).to match_ruby actual_dsl
|
81
81
|
|
82
82
|
errmsg = Regexp.new(Regexp.escape(<<-MSG.strip))
|
83
|
-
33: add_index("employee_clubs", ["emp_no", "Xclub_id"], {:name=>"idx_emp_no_club_id", :using=>:btree})
|
83
|
+
33: add_index("employee_clubs", ["emp_no", "Xclub_id"], **{:name=>"idx_emp_no_club_id", :using=>:btree})
|
84
84
|
MSG
|
85
85
|
|
86
86
|
expect do
|
@@ -5,7 +5,7 @@ describe 'Ridgepole::Client (with new text/blob types)' do
|
|
5
5
|
subject { client }
|
6
6
|
|
7
7
|
it do
|
8
|
-
|
8
|
+
table_def = <<-RUBY
|
9
9
|
create_table :foos, id: :unsigned_integer do |t|
|
10
10
|
t.blob :blob
|
11
11
|
t.tinyblob :tiny_blob
|
@@ -20,6 +20,7 @@ describe 'Ridgepole::Client (with new text/blob types)' do
|
|
20
20
|
t.unsigned_integer :unsigned_integer
|
21
21
|
end
|
22
22
|
RUBY
|
23
|
+
delta = subject.diff(table_def)
|
23
24
|
|
24
25
|
expect(delta.differ?).to be_truthy
|
25
26
|
delta.migrate
|
@@ -39,6 +40,8 @@ describe 'Ridgepole::Client (with new text/blob types)' do
|
|
39
40
|
t.integer "unsigned_integer", unsigned: true
|
40
41
|
end
|
41
42
|
ERB
|
43
|
+
|
44
|
+
expect(subject.diff(table_def).differ?).to be_falsey
|
42
45
|
end
|
43
46
|
end
|
44
47
|
|
@@ -36,7 +36,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
|
|
36
36
|
expect(delta.differ?).to be_truthy
|
37
37
|
expect(subject.dump).to match_ruby actual_dsl
|
38
38
|
expect(delta.script).to match_fuzzy <<-RUBY
|
39
|
-
add_foreign_key("child", "parent", {:name=>"fk_rails_e74ce85cbc"})
|
39
|
+
add_foreign_key("child", "parent", **{:name=>"fk_rails_e74ce85cbc"})
|
40
40
|
RUBY
|
41
41
|
delta.migrate
|
42
42
|
expect(subject.dump).to match_ruby expected_dsl
|