ridgepole 0.8.13 → 0.9.0.beta

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test.yml +3 -1
  3. data/Appraisals +4 -5
  4. data/README.md +17 -19
  5. data/bin/ridgepole +13 -1
  6. data/gemfiles/{activerecord_5.0.gemfile → activerecord_6.1.gemfile} +1 -2
  7. data/lib/ridgepole/client.rb +8 -3
  8. data/lib/ridgepole/delta.rb +16 -1
  9. data/lib/ridgepole/diff.rb +43 -20
  10. data/lib/ridgepole/execute_expander.rb +10 -1
  11. data/lib/ridgepole/ext/abstract_adapter/disable_table_options.rb +9 -1
  12. data/lib/ridgepole/external_sql_executer.rb +12 -1
  13. data/lib/ridgepole/version.rb +1 -1
  14. data/ridgepole.gemspec +1 -1
  15. data/spec/erb_helper.rb +5 -1
  16. data/spec/mysql/_migrate/migrate_change_table_option_spec.rb +2 -2
  17. data/spec/mysql/cli/ridgepole_spec.rb +35 -1
  18. data/spec/mysql/collation/collation_spec.rb +7 -7
  19. data/spec/mysql/dump/dump_class_method_spec.rb +3 -3
  20. data/spec/mysql/dump/dump_spec.rb +3 -3
  21. data/spec/mysql/dump/dump_unknown_column_type_spec.rb +1 -1
  22. data/spec/mysql/dump/dump_without_table_options_spec.rb +2 -2
  23. data/spec/mysql/fk/migrate_create_fk_spec.rb +7 -7
  24. data/spec/mysql/migrate/migrate_add_column_with_alter_extra_spec.rb +88 -0
  25. data/spec/mysql/migrate/migrate_change_column8_spec.rb +38 -5
  26. data/spec/mysql/migrate/migrate_change_index_spec.rb +7 -1
  27. data/spec/mysql/migrate/migrate_check_relation_column_type_spec.rb +4 -4
  28. data/spec/mysql/migrate/migrate_primary_key_spec.rb +30 -5
  29. data/spec/mysql/migrate/migrate_same_spec.rb +3 -3
  30. data/spec/mysql/text_blob_types/text_blob_types_spec.rb +1 -1
  31. data/spec/postgresql/dump/dump_spec.rb +1 -1
  32. data/spec/postgresql/migrate/migrate_same_spec.rb +1 -1
  33. metadata +10 -15
  34. data/lib/ridgepole/ext/abstract_mysql_adapter/use_alter_index.rb +0 -31
  35. data/spec/mysql/migrate_/migrate_create_index_with_alter_spec.rb +0 -141
  36. data/spec/mysql/migrate_/migrate_drop_index_with_alter_spec.rb +0 -141
@@ -4,12 +4,12 @@ describe 'Ridgepole::Client#diff -> migrate' do
4
4
  context 'when database and definition are same' do
5
5
  let(:dsl) do
6
6
  erbh(<<-ERB)
7
- create_table "clubs", <%= i cond('>= 5.1',{id: :integer}) + {unsigned: true, force: :cascade} %> do |t|
7
+ create_table "clubs", <%= i cond({ '>= 5.1, < 6.1' => { id: :integer, unsigned: true }, ">= 6.1" => { id: { type: :integer, unsigned: true } } }, { unsigned: true }) %>, force: :cascade do |t|
8
8
  t.string "name", default: "", null: false
9
9
  t.index ["name"], name: "idx_name", unique: true, <%= i cond(5.0, using: :btree) %>
10
10
  end
11
11
 
12
- create_table "departments", primary_key: "dept_no", id: :string, limit: 4, force: :cascade do |t|
12
+ create_table "departments", primary_key: "dept_no", <%= i cond(">= 6.1", { id: { type: :string, limit: 4 } }, { id: :string, limit: 4 }) %>, force: :cascade do |t|
13
13
  t.string "dept_name", limit: 40, null: false
14
14
  t.index ["dept_name"], name: "dept_name", unique: true, <%= i cond(5.0, using: :btree) %>
15
15
  end
@@ -32,7 +32,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
32
32
  t.index ["emp_no"], name: "emp_no", <%= i cond(5.0, using: :btree) %>
33
33
  end
34
34
 
35
- create_table "employee_clubs", <%= i cond('>= 5.1',{id: :integer}) + {unsigned: true, force: :cascade} %> do |t|
35
+ create_table "employee_clubs", <%= i cond({ '>= 5.1, < 6.1' => { id: :integer, unsigned: true }, ">= 6.1" => { id: { type: :integer, unsigned: true } } }, { unsigned: true }) %>, force: :cascade do |t|
36
36
  t.integer "emp_no", null: false, unsigned: true
37
37
  t.integer "club_id", null: false, unsigned: true
38
38
  t.index ["emp_no", "club_id"], name: "idx_emp_no_club_id", <%= i cond(5.0, using: :btree) %>
@@ -26,7 +26,7 @@ describe 'Ridgepole::Client (with new text/blob types)' do
26
26
  delta.migrate
27
27
 
28
28
  expect(subject.dump).to match_ruby erbh(<<-ERB)
29
- create_table "foos", id: :integer, unsigned: true, force: :cascade do |t|
29
+ create_table "foos", <%= i cond(">= 6.1", { id: { type: :integer, unsigned: true } }, { id: :integer, unsigned: true }) %>, force: :cascade do |t|
30
30
  t.binary "blob", <%= i cond(5.0, limit: 65535) %>
31
31
  t.<%= cond('< 6.0.0.beta2', :blob, :binary) %> "tiny_blob", <%= i cond('< 6.0.0.beta2', {limit: 255}, {size: :tiny}) %>
32
32
  t.binary "medium_blob", <%= i cond('< 6.0.0.beta2', {limit: 16777215}, {size: :medium}) %>
@@ -12,7 +12,7 @@ describe 'Ridgepole::Client#dump' do
12
12
  t.index ["name"], name: "idx_name", unique: true, <%= i cond(5.0, using: :btree) %>
13
13
  end
14
14
 
15
- create_table "departments", primary_key: "dept_no", id: :string, limit: 4, force: :cascade do |t|
15
+ create_table "departments", primary_key: "dept_no", <%= i cond(">= 6.1", { id: { type: :string, limit: 4 } }, { id: :string, limit: 4 }) %>, force: :cascade do |t|
16
16
  t.string "dept_name", limit: 40, null: false
17
17
  t.index ["dept_name"], name: "idx_dept_name", unique: true, <%= i cond(5.0, using: :btree) %>
18
18
  end
@@ -9,7 +9,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
9
9
  t.index ["name"], name: "idx_name", unique: true, <%= i cond(5.0, using: :btree) %>
10
10
  end
11
11
 
12
- create_table "departments", primary_key: "dept_no", id: :string, limit: 4, force: :cascade do |t|
12
+ create_table "departments", primary_key: "dept_no", <%= i cond(">= 6.1", { id: { type: :string, limit: 4 } }, { id: :string, limit: 4 }) %>, force: :cascade do |t|
13
13
  t.string "dept_name", limit: 40, null: false
14
14
  t.index ["dept_name"], name: "idx_dept_name", unique: true, <%= i cond(5.0, using: :btree) %>
15
15
  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.8.13
4
+ version: 0.9.0.beta
5
5
  platform: ruby
6
6
  authors:
7
7
  - Genki Sugawara
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-28 00:00:00.000000000 Z
11
+ date: 2021-01-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -16,20 +16,20 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 5.0.1
19
+ version: '5.1'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '6.1'
22
+ version: '6.2'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 5.0.1
29
+ version: '5.1'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '6.1'
32
+ version: '6.2'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: diffy
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -274,10 +274,10 @@ files:
274
274
  - Rakefile
275
275
  - bin/ridgepole
276
276
  - docker-compose.yml
277
- - gemfiles/activerecord_5.0.gemfile
278
277
  - gemfiles/activerecord_5.1.gemfile
279
278
  - gemfiles/activerecord_5.2.gemfile
280
279
  - gemfiles/activerecord_6.0.gemfile
280
+ - gemfiles/activerecord_6.1.gemfile
281
281
  - lib/ridgepole.rb
282
282
  - lib/ridgepole/cli/config.rb
283
283
  - lib/ridgepole/client.rb
@@ -292,7 +292,6 @@ files:
292
292
  - lib/ridgepole/execute_expander.rb
293
293
  - lib/ridgepole/ext/abstract_adapter/disable_table_options.rb
294
294
  - lib/ridgepole/ext/abstract_mysql_adapter/dump_auto_increment.rb
295
- - lib/ridgepole/ext/abstract_mysql_adapter/use_alter_index.rb
296
295
  - lib/ridgepole/ext/pp_sort_hash.rb
297
296
  - lib/ridgepole/ext/schema_dumper.rb
298
297
  - lib/ridgepole/external_sql_executer.rb
@@ -402,8 +401,6 @@ files:
402
401
  - spec/mysql/migrate/migrate_with_pre_post_query_spec.rb
403
402
  - spec/mysql/migrate/migrate_with_tables_spec.rb
404
403
  - spec/mysql/migrate/migrate_with_verbose_log_spec.rb
405
- - spec/mysql/migrate_/migrate_create_index_with_alter_spec.rb
406
- - spec/mysql/migrate_/migrate_drop_index_with_alter_spec.rb
407
404
  - spec/mysql/ridgepole_test_database.sql
408
405
  - spec/mysql/ridgepole_test_tables.sql
409
406
  - spec/mysql/ridgepole_test_tables_unknown_column_type.sql
@@ -468,11 +465,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
468
465
  version: 2.2.7
469
466
  required_rubygems_version: !ruby/object:Gem::Requirement
470
467
  requirements:
471
- - - ">="
468
+ - - ">"
472
469
  - !ruby/object:Gem::Version
473
- version: '0'
470
+ version: 1.3.1
474
471
  requirements: []
475
- rubygems_version: 3.1.2
472
+ rubygems_version: 3.0.3
476
473
  signing_key:
477
474
  specification_version: 4
478
475
  summary: Ridgepole is a tool to manage DB schema.
@@ -566,8 +563,6 @@ test_files:
566
563
  - spec/mysql/migrate/migrate_with_pre_post_query_spec.rb
567
564
  - spec/mysql/migrate/migrate_with_tables_spec.rb
568
565
  - spec/mysql/migrate/migrate_with_verbose_log_spec.rb
569
- - spec/mysql/migrate_/migrate_create_index_with_alter_spec.rb
570
- - spec/mysql/migrate_/migrate_drop_index_with_alter_spec.rb
571
566
  - spec/mysql/ridgepole_test_database.sql
572
567
  - spec/mysql/ridgepole_test_tables.sql
573
568
  - spec/mysql/ridgepole_test_tables_unknown_column_type.sql
@@ -1,31 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'active_record/connection_adapters/abstract_mysql_adapter'
4
-
5
- module Ridgepole
6
- module Ext
7
- module AbstractMysqlAdapter
8
- module UseAlterIndex
9
- def add_index(table_name, column_name, options = {})
10
- index_name, index_type, index_columns, index_options, _index_algorithm, index_using = add_index_options(table_name, column_name, **options)
11
-
12
- # cannot specify index_algorithm
13
- execute "ALTER TABLE #{quote_table_name(table_name)} ADD #{index_type} INDEX #{quote_column_name(index_name)} #{index_using} (#{index_columns})#{index_options}"
14
- end
15
-
16
- def remove_index(table_name, options)
17
- index_name = index_name_for_remove(table_name, options)
18
- execute "ALTER TABLE #{quote_table_name(table_name)} DROP INDEX #{quote_column_name(index_name)}"
19
- end
20
- end
21
- end
22
- end
23
- end
24
-
25
- module ActiveRecord
26
- module ConnectionAdapters
27
- class AbstractMysqlAdapter
28
- prepend Ridgepole::Ext::AbstractMysqlAdapter::UseAlterIndex
29
- end
30
- end
31
- end
@@ -1,141 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe 'Ridgepole::Client#diff -> migrate' do
4
- context 'when create index' do
5
- let(:dsl) do
6
- erbh(<<-ERB)
7
- create_table "clubs", force: :cascade do |t|
8
- t.string "name", default: "", null: false
9
- t.index ["name"], name: "idx_name", unique: true, <%= i cond(5.0, using: :btree) %>
10
- end
11
-
12
- create_table "departments", primary_key: "dept_no", force: :cascade do |t|
13
- t.string "dept_name", limit: 40, null: false
14
- t.index ["dept_name"], name: "dept_name", unique: true, <%= i cond(5.0, using: :btree) %>
15
- end
16
-
17
- create_table "dept_emp", id: false, force: :cascade do |t|
18
- t.integer "emp_no", null: false
19
- t.string "dept_no", null: false
20
- t.date "from_date", null: false
21
- t.date "to_date", null: false
22
- t.index ["dept_no"], name: "dept_no", <%= i cond(5.0, using: :btree) %>
23
- t.index ["emp_no"], name: "emp_no", <%= i cond(5.0, using: :btree) %>
24
- end
25
-
26
- create_table "dept_manager", id: false, force: :cascade do |t|
27
- t.string "dept_no", null: false
28
- t.integer "emp_no", null: false
29
- t.date "from_date", null: false
30
- t.date "to_date", null: false
31
- t.index ["dept_no"], name: "dept_no", <%= i cond(5.0, using: :btree) %>
32
- t.index ["emp_no"], name: "emp_no", <%= i cond(5.0, using: :btree) %>
33
- end
34
-
35
- create_table "employee_clubs", force: :cascade do |t|
36
- t.integer "emp_no", null: false
37
- t.integer "club_id", null: false
38
- t.index ["emp_no", "club_id"], name: "idx_emp_no_club_id", <%= i cond(5.0, using: :btree) %>
39
- end
40
-
41
- create_table "employees", primary_key: "emp_no", force: :cascade do |t|
42
- t.date "birth_date", null: false
43
- t.string "first_name", limit: 14, null: false
44
- t.string "last_name", limit: 16, null: false
45
- t.string "gender", limit: 1, null: false
46
- t.date "hire_date", null: false
47
- end
48
-
49
- create_table "salaries", id: false, force: :cascade do |t|
50
- t.integer "emp_no", null: false
51
- t.integer "salary", null: false
52
- t.date "from_date", null: false
53
- t.date "to_date", null: false
54
- t.index ["emp_no"], name: "emp_no", <%= i cond(5.0, using: :btree) %>
55
- end
56
-
57
- create_table "titles", id: false, force: :cascade do |t|
58
- t.integer "emp_no", null: false
59
- t.string "title", limit: 50, null: false
60
- t.date "from_date", null: false
61
- t.date "to_date"
62
- t.index ["emp_no"], name: "emp_no", <%= i cond(5.0, using: :btree) %>
63
- end
64
- ERB
65
- end
66
-
67
- let(:actual_dsl) do
68
- erbh(<<-ERB)
69
- create_table "clubs", force: :cascade do |t|
70
- t.string "name", default: "", null: false
71
- end
72
-
73
- create_table "departments", primary_key: "dept_no", force: :cascade do |t|
74
- t.string "dept_name", limit: 40, null: false
75
- t.index ["dept_name"], name: "dept_name", unique: true, <%= i cond(5.0, using: :btree) %>
76
- end
77
-
78
- create_table "dept_emp", id: false, force: :cascade do |t|
79
- t.integer "emp_no", null: false
80
- t.string "dept_no", null: false
81
- t.date "from_date", null: false
82
- t.date "to_date", null: false
83
- t.index ["dept_no"], name: "dept_no", <%= i cond(5.0, using: :btree) %>
84
- t.index ["emp_no"], name: "emp_no", <%= i cond(5.0, using: :btree) %>
85
- end
86
-
87
- create_table "dept_manager", id: false, force: :cascade do |t|
88
- t.string "dept_no", null: false
89
- t.integer "emp_no", null: false
90
- t.date "from_date", null: false
91
- t.date "to_date", null: false
92
- t.index ["dept_no"], name: "dept_no", <%= i cond(5.0, using: :btree) %>
93
- t.index ["emp_no"], name: "emp_no", <%= i cond(5.0, using: :btree) %>
94
- end
95
-
96
- create_table "employee_clubs", force: :cascade do |t|
97
- t.integer "emp_no", null: false
98
- t.integer "club_id", null: false
99
- end
100
-
101
- create_table "employees", primary_key: "emp_no", force: :cascade do |t|
102
- t.date "birth_date", null: false
103
- t.string "first_name", limit: 14, null: false
104
- t.string "last_name", limit: 16, null: false
105
- t.string "gender", limit: 1, null: false
106
- t.date "hire_date", null: false
107
- end
108
-
109
- create_table "salaries", id: false, force: :cascade do |t|
110
- t.integer "emp_no", null: false
111
- t.integer "salary", null: false
112
- t.date "from_date", null: false
113
- t.date "to_date", null: false
114
- t.index ["emp_no"], name: "emp_no", <%= i cond(5.0, using: :btree) %>
115
- end
116
-
117
- create_table "titles", id: false, force: :cascade do |t|
118
- t.integer "emp_no", null: false
119
- t.string "title", limit: 50, null: false
120
- t.date "from_date", null: false
121
- t.date "to_date"
122
- end
123
- ERB
124
- end
125
-
126
- let(:expected_dsl) { dsl }
127
-
128
- before { subject.diff(actual_dsl).migrate }
129
- subject { client(mysql_use_alter: true) }
130
-
131
- it {
132
- delta = subject.diff(expected_dsl)
133
- expect(delta.differ?).to be_truthy
134
- expect(subject.dump).to match_ruby actual_dsl
135
- _migrated, sql = delta.migrate(noop: true)
136
- expect(sql).to match(/ALTER/)
137
- delta.migrate
138
- expect(subject.dump).to match_ruby expected_dsl
139
- }
140
- end
141
- end
@@ -1,141 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe 'Ridgepole::Client#diff -> migrate' do
4
- context 'when drop index' do
5
- let(:dsl) do
6
- erbh(<<-ERB)
7
- create_table "clubs", force: :cascade do |t|
8
- t.string "name", default: "", null: false
9
- t.index ["name"], name: "idx_name", unique: true, <%= i cond(5.0, using: :btree) %>
10
- end
11
-
12
- create_table "departments", primary_key: "dept_no", force: :cascade do |t|
13
- t.string "dept_name", limit: 40, null: false
14
- t.index ["dept_name"], name: "dept_name", unique: true, <%= i cond(5.0, using: :btree) %>
15
- end
16
-
17
- create_table "dept_emp", id: false, force: :cascade do |t|
18
- t.integer "emp_no", null: false
19
- t.string "dept_no", null: false
20
- t.date "from_date", null: false
21
- t.date "to_date", null: false
22
- t.index ["dept_no"], name: "dept_no", <%= i cond(5.0, using: :btree) %>
23
- t.index ["emp_no"], name: "emp_no", <%= i cond(5.0, using: :btree) %>
24
- end
25
-
26
- create_table "dept_manager", id: false, force: :cascade do |t|
27
- t.string "dept_no", null: false
28
- t.integer "emp_no", null: false
29
- t.date "from_date", null: false
30
- t.date "to_date", null: false
31
- t.index ["dept_no"], name: "dept_no", <%= i cond(5.0, using: :btree) %>
32
- t.index ["emp_no"], name: "emp_no", <%= i cond(5.0, using: :btree) %>
33
- end
34
-
35
- create_table "employee_clubs", force: :cascade do |t|
36
- t.integer "emp_no", null: false
37
- t.integer "club_id", null: false
38
- t.index ["emp_no", "club_id"], name: "idx_emp_no_club_id", <%= i cond(5.0, using: :btree) %>
39
- end
40
-
41
- create_table "employees", primary_key: "emp_no", force: :cascade do |t|
42
- t.date "birth_date", null: false
43
- t.string "first_name", limit: 14, null: false
44
- t.string "last_name", limit: 16, null: false
45
- t.string "gender", limit: 1, null: false
46
- t.date "hire_date", null: false
47
- end
48
-
49
- create_table "salaries", id: false, force: :cascade do |t|
50
- t.integer "emp_no", null: false
51
- t.integer "salary", null: false
52
- t.date "from_date", null: false
53
- t.date "to_date", null: false
54
- t.index ["emp_no"], name: "emp_no", <%= i cond(5.0, using: :btree) %>
55
- end
56
-
57
- create_table "titles", id: false, force: :cascade do |t|
58
- t.integer "emp_no", null: false
59
- t.string "title", limit: 50, null: false
60
- t.date "from_date", null: false
61
- t.date "to_date"
62
- t.index ["emp_no"], name: "emp_no", <%= i cond(5.0, using: :btree) %>
63
- end
64
- ERB
65
- end
66
-
67
- let(:actual_dsl) { dsl }
68
-
69
- let(:expected_dsl) do
70
- erbh(<<-ERB)
71
- create_table "clubs", force: :cascade do |t|
72
- t.string "name", default: "", null: false
73
- end
74
-
75
- create_table "departments", primary_key: "dept_no", force: :cascade do |t|
76
- t.string "dept_name", limit: 40, null: false
77
- t.index ["dept_name"], name: "dept_name", unique: true, <%= i cond(5.0, using: :btree) %>
78
- end
79
-
80
- create_table "dept_emp", id: false, force: :cascade do |t|
81
- t.integer "emp_no", null: false
82
- t.string "dept_no", null: false
83
- t.date "from_date", null: false
84
- t.date "to_date", null: false
85
- t.index ["dept_no"], name: "dept_no", <%= i cond(5.0, using: :btree) %>
86
- t.index ["emp_no"], name: "emp_no", <%= i cond(5.0, using: :btree) %>
87
- end
88
-
89
- create_table "dept_manager", id: false, force: :cascade do |t|
90
- t.string "dept_no", null: false
91
- t.integer "emp_no", null: false
92
- t.date "from_date", null: false
93
- t.date "to_date", null: false
94
- t.index ["dept_no"], name: "dept_no", <%= i cond(5.0, using: :btree) %>
95
- t.index ["emp_no"], name: "emp_no", <%= i cond(5.0, using: :btree) %>
96
- end
97
-
98
- create_table "employee_clubs", force: :cascade do |t|
99
- t.integer "emp_no", null: false
100
- t.integer "club_id", null: false
101
- end
102
-
103
- create_table "employees", primary_key: "emp_no", force: :cascade do |t|
104
- t.date "birth_date", null: false
105
- t.string "first_name", limit: 14, null: false
106
- t.string "last_name", limit: 16, null: false
107
- t.string "gender", limit: 1, null: false
108
- t.date "hire_date", null: false
109
- end
110
-
111
- create_table "salaries", id: false, force: :cascade do |t|
112
- t.integer "emp_no", null: false
113
- t.integer "salary", null: false
114
- t.date "from_date", null: false
115
- t.date "to_date", null: false
116
- t.index ["emp_no"], name: "emp_no", <%= i cond(5.0, using: :btree) %>
117
- end
118
-
119
- create_table "titles", id: false, force: :cascade do |t|
120
- t.integer "emp_no", null: false
121
- t.string "title", limit: 50, null: false
122
- t.date "from_date", null: false
123
- t.date "to_date"
124
- end
125
- ERB
126
- end
127
-
128
- before { subject.diff(actual_dsl).migrate }
129
- subject { client(mysql_use_alter: true) }
130
-
131
- it {
132
- delta = subject.diff(expected_dsl)
133
- expect(delta.differ?).to be_truthy
134
- expect(subject.dump).to match_ruby actual_dsl
135
- _migrated, sql = delta.migrate(noop: true)
136
- expect(sql).to match(/ALTER/)
137
- delta.migrate
138
- expect(subject.dump).to match_ruby expected_dsl
139
- }
140
- end
141
- end