ridgepole 0.6.4 → 0.6.5.beta

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.
Files changed (105) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.travis.yml +18 -8
  4. data/Appraisals +8 -0
  5. data/README.md +26 -2
  6. data/docker-compose.yml +12 -0
  7. data/gemfiles/activerecord_4.2.gemfile +8 -0
  8. data/gemfiles/activerecord_5.0.gemfile +7 -0
  9. data/lib/ridgepole/diff.rb +3 -1
  10. data/lib/ridgepole/version.rb +1 -1
  11. data/ridgepole.gemspec +6 -2
  12. data/spec/cli_helper.rb +63 -0
  13. data/spec/mysql/bigint_pk/bigint_pk_spec.rb +45 -0
  14. data/spec/mysql/cli/config_spec.rb +0 -2
  15. data/spec/mysql/cli/ridgepole_spec.rb +58 -56
  16. data/spec/mysql/collation/collation_spec.rb +134 -138
  17. data/spec/mysql/diff/diff2_spec.rb +1 -3
  18. data/spec/mysql/diff/diff_spec.rb +1 -3
  19. data/spec/mysql/dump/dump_class_method_spec.rb +29 -11
  20. data/spec/mysql/dump/dump_some_tables_spec.rb +18 -8
  21. data/spec/mysql/dump/dump_spec.rb +28 -10
  22. data/spec/mysql/dump/dump_without_table_options_spec.rb +29 -33
  23. data/spec/mysql/fk/migrate_change_fk_spec.rb +2 -4
  24. data/spec/mysql/fk/migrate_create_fk_spec.rb +39 -29
  25. data/spec/mysql/fk/migrate_drop_fk_spec.rb +20 -22
  26. data/spec/mysql/migrate/check_orphan_index_spec.rb +2 -4
  27. data/spec/mysql/migrate/migrate_add_column2_spec.rb +33 -26
  28. data/spec/mysql/migrate/migrate_add_column_spec.rb +32 -22
  29. data/spec/mysql/migrate/migrate_add_column_with_alter_extra_spec.rb +26 -16
  30. data/spec/mysql/migrate/migrate_add_column_with_script_spec.rb +27 -17
  31. data/spec/mysql/migrate/migrate_change_column2_spec.rb +26 -16
  32. data/spec/mysql/migrate/migrate_change_column3_spec.rb +54 -44
  33. data/spec/mysql/migrate/migrate_change_column4_spec.rb +8 -10
  34. data/spec/mysql/migrate/migrate_change_column5_spec.rb +32 -22
  35. data/spec/mysql/migrate/migrate_change_column6_spec.rb +28 -30
  36. data/spec/mysql/migrate/migrate_change_column_default_spec.rb +34 -36
  37. data/spec/mysql/migrate/migrate_change_column_float_spec.rb +10 -12
  38. data/spec/mysql/migrate/migrate_change_column_spec.rb +41 -29
  39. data/spec/mysql/migrate/migrate_change_index2_spec.rb +12 -14
  40. data/spec/mysql/migrate/migrate_change_index3_spec.rb +24 -26
  41. data/spec/mysql/migrate/migrate_change_index4_spec.rb +34 -24
  42. data/spec/mysql/migrate/migrate_change_index5_spec.rb +26 -16
  43. data/spec/mysql/migrate/migrate_change_index6_spec.rb +38 -28
  44. data/spec/mysql/migrate/migrate_change_index_spec.rb +39 -29
  45. data/spec/mysql/migrate/migrate_change_table_option_spec.rb +26 -13
  46. data/spec/mysql/migrate/migrate_create_index2_spec.rb +30 -20
  47. data/spec/mysql/migrate/migrate_create_index_spec.rb +28 -18
  48. data/spec/mysql/migrate/migrate_create_table_spec.rb +24 -14
  49. data/spec/mysql/migrate/migrate_create_table_with_options_spec.rb +4 -6
  50. data/spec/mysql/migrate/migrate_create_table_with_script_spec.rb +23 -13
  51. data/spec/mysql/migrate/migrate_drop_column_and_index2_spec.rb +32 -22
  52. data/spec/mysql/migrate/migrate_drop_column_and_index_spec.rb +35 -25
  53. data/spec/mysql/migrate/migrate_drop_column_spec.rb +36 -26
  54. data/spec/mysql/migrate/migrate_drop_index_spec.rb +28 -18
  55. data/spec/mysql/migrate/migrate_drop_table_spec.rb +29 -19
  56. data/spec/mysql/migrate/migrate_duplicate_index_spec.rb +2 -4
  57. data/spec/mysql/migrate/migrate_duplicate_table_spec.rb +2 -4
  58. data/spec/mysql/migrate/migrate_empty_spec.rb +24 -14
  59. data/spec/mysql/migrate/migrate_execute_spec.rb +78 -65
  60. data/spec/mysql/migrate/migrate_log_file_spec.rb +22 -12
  61. data/spec/mysql/migrate/migrate_merge_mode_spec.rb +31 -21
  62. data/spec/mysql/migrate/migrate_noop_spec.rb +55 -45
  63. data/spec/mysql/migrate/migrate_rename_column_spec.rb +38 -28
  64. data/spec/mysql/migrate/migrate_rename_table_spec.rb +43 -33
  65. data/spec/mysql/migrate/migrate_same_default_null_spec.rb +28 -18
  66. data/spec/mysql/migrate/migrate_same_spec.rb +26 -12
  67. data/spec/mysql/migrate/migrate_script_error_spec.rb +3 -5
  68. data/spec/mysql/migrate/migrate_skip_rename_column_spec.rb +30 -20
  69. data/spec/mysql/migrate/migrate_skip_rename_table_spec.rb +30 -20
  70. data/spec/mysql/migrate/migrate_with_ignore_tables_spec.rb +44 -46
  71. data/spec/mysql/migrate/migrate_with_pre_post_query_spec.rb +6 -8
  72. data/spec/mysql/migrate/migrate_with_tables_spec.rb +20 -22
  73. data/spec/mysql/migrate_/migrate_create_index_with_alter_spec.rb +22 -12
  74. data/spec/mysql/migrate_/migrate_drop_index_with_alter_spec.rb +22 -12
  75. data/spec/mysql/~default_name_fk/migrate_change_fk_spec.rb +8 -10
  76. data/spec/mysql/~default_name_fk/migrate_create_fk_spec.rb +39 -29
  77. data/spec/mysql/~default_name_fk/migrate_drop_fk_spec.rb +20 -22
  78. data/spec/postgresql/diff/diff_spec.rb +7 -9
  79. data/spec/postgresql/dump/dump_spec.rb +2 -4
  80. data/spec/postgresql/fk/migrate_change_fk_spec.rb +8 -10
  81. data/spec/postgresql/fk/migrate_create_fk_spec.rb +24 -26
  82. data/spec/postgresql/fk/migrate_drop_fk_spec.rb +21 -23
  83. data/spec/postgresql/migrate/migrate_add_column_spec.rb +19 -22
  84. data/spec/postgresql/migrate/migrate_change_column_default_spec.rb +6 -8
  85. data/spec/postgresql/migrate/migrate_change_column_spec.rb +17 -19
  86. data/spec/postgresql/migrate/migrate_change_index_spec.rb +11 -13
  87. data/spec/postgresql/migrate/migrate_create_table_spec.rb +6 -9
  88. data/spec/postgresql/migrate/migrate_drop_column_spec.rb +12 -14
  89. data/spec/postgresql/migrate/migrate_drop_column_with_index_spec.rb +12 -14
  90. data/spec/postgresql/migrate/migrate_drop_index_spec.rb +10 -12
  91. data/spec/postgresql/migrate/migrate_drop_table_spec.rb +7 -9
  92. data/spec/postgresql/migrate/migrate_ext_cols_spec.rb +6 -8
  93. data/spec/postgresql/migrate/migrate_rename_column_spec.rb +12 -14
  94. data/spec/postgresql/migrate/migrate_rename_table_spec.rb +14 -16
  95. data/spec/postgresql/migrate/migrate_same_spec.rb +4 -6
  96. data/spec/postgresql/~default_name_fk/migrate_change_fk_spec.rb +8 -10
  97. data/spec/postgresql/~default_name_fk/migrate_create_fk_spec.rb +24 -26
  98. data/spec/postgresql/~default_name_fk/migrate_drop_fk_spec.rb +20 -22
  99. data/spec/processing_for_travis.rb +9 -0
  100. data/spec/spec_condition.rb +24 -0
  101. data/spec/spec_const.rb +18 -0
  102. data/spec/spec_helper.rb +125 -196
  103. data/spec/string_ext.rb +0 -13
  104. metadata +106 -32
  105. data/spec/mysql/bigint_pk/bigint_pkspec.rb +0 -47
@@ -1,26 +1,25 @@
1
- unless postgresql?
2
1
  describe 'Ridgepole::Client#diff -> migrate' do
3
2
  context 'when change float column' do
4
3
  let(:actual_dsl) {
5
- <<-RUBY
4
+ <<-EOS
6
5
  create_table "salaries", id: false, force: :cascade do |t|
7
6
  t.integer "emp_no", limit: 4, null: false
8
7
  t.float "salary", limit: 24, null: false
9
8
  t.date "from_date", null: false
10
9
  t.date "to_date", null: false
11
10
  end
12
- RUBY
11
+ EOS
13
12
  }
14
13
 
15
14
  let(:expected_dsl) {
16
- <<-RUBY
15
+ <<-EOS
17
16
  create_table "salaries", id: false, force: :cascade do |t|
18
17
  t.integer "emp_no", null: false
19
18
  t.float "salary", null: false
20
19
  t.date "from_date", null: false
21
20
  t.date "to_date", null: false
22
21
  end
23
- RUBY
22
+ EOS
24
23
  }
25
24
 
26
25
  before { subject.diff(actual_dsl).migrate }
@@ -29,33 +28,33 @@ describe 'Ridgepole::Client#diff -> migrate' do
29
28
  it {
30
29
  delta = subject.diff(expected_dsl)
31
30
  expect(delta.differ?).to be_truthy
32
- expect(subject.dump).to eq actual_dsl.strip_heredoc.strip
31
+ expect(subject.dump).to match_fuzzy actual_dsl
33
32
  delta.migrate
34
- expect(subject.dump).to eq actual_dsl.strip_heredoc.strip
33
+ expect(subject.dump).to match_fuzzy actual_dsl
35
34
  }
36
35
  end
37
36
 
38
37
  context 'when change float column (no change)' do
39
38
  let(:actual_dsl) {
40
- <<-RUBY
39
+ <<-EOS
41
40
  create_table "salaries", id: false, force: :cascade do |t|
42
41
  t.integer "emp_no", null: false
43
42
  t.float "salary", limit: 24, null: false
44
43
  t.date "from_date", null: false
45
44
  t.date "to_date", null: false
46
45
  end
47
- RUBY
46
+ EOS
48
47
  }
49
48
 
50
49
  let(:expected_dsl) {
51
- <<-RUBY
50
+ <<-EOS
52
51
  create_table "salaries", id: false, force: :cascade do |t|
53
52
  t.integer "emp_no", null: false
54
53
  t.float "salary", null: false
55
54
  t.date "from_date", null: false
56
55
  t.date "to_date", null: false
57
56
  end
58
- RUBY
57
+ EOS
59
58
  }
60
59
 
61
60
  before { subject.diff(actual_dsl).migrate }
@@ -67,4 +66,3 @@ describe 'Ridgepole::Client#diff -> migrate' do
67
66
  }
68
67
  end
69
68
  end
70
- end
@@ -1,15 +1,28 @@
1
- unless postgresql?
2
1
  describe 'Ridgepole::Client#diff -> migrate' do
2
+ let(:template_variables) {
3
+ opts = {
4
+ unsigned: {},
5
+ unsigned_false: {},
6
+ }
7
+
8
+ if condition(:mysql_awesome_enabled)
9
+ opts[:unsigned] = {unsigned: true}
10
+ opts[:unsigned_false] = {unsigned: false}
11
+ end
12
+
13
+ opts
14
+ }
15
+
3
16
  context 'when change column' do
4
17
  let(:actual_dsl) {
5
- <<-RUBY
6
- create_table "clubs"#{unsigned_if_enabled}, force: :cascade do |t|
18
+ erbh(<<-EOS, template_variables)
19
+ create_table "clubs", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
7
20
  t.string "name", limit: 255, default: "", null: false
8
21
  end
9
22
 
10
23
  add_index "clubs", ["name"], name: "idx_name", unique: true, using: :btree
11
24
 
12
- create_table "departments", primary_key: "dept_no"#{unsigned_if_enabled}, force: :cascade do |t|
25
+ create_table "departments", primary_key: "dept_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
13
26
  t.string "dept_name", limit: 40, null: false
14
27
  end
15
28
 
@@ -35,14 +48,14 @@ describe 'Ridgepole::Client#diff -> migrate' do
35
48
  add_index "dept_manager", ["dept_no"], name: "dept_no", using: :btree
36
49
  add_index "dept_manager", ["emp_no"], name: "emp_no", using: :btree
37
50
 
38
- create_table "employee_clubs"#{unsigned_if_enabled}, force: :cascade do |t|
39
- t.integer "emp_no", limit: 4, null: false#{unsigned_if_enabled}
40
- t.integer "club_id", limit: 4, null: false#{unsigned_if_enabled}
51
+ create_table "employee_clubs", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
52
+ t.integer "emp_no", <%= {limit: 4, null: false}.push(@unsigned).i %>
53
+ t.integer "club_id", <%= {limit: 4, null: false}.push(@unsigned).i %>
41
54
  end
42
55
 
43
56
  add_index "employee_clubs", ["emp_no", "club_id"], name: "idx_emp_no_club_id", using: :btree
44
57
 
45
- create_table "employees", primary_key: "emp_no"#{unsigned_if_enabled}, force: :cascade do |t|
58
+ create_table "employees", primary_key: "emp_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
46
59
  t.date "birth_date", null: false
47
60
  t.string "first_name", limit: 14, null: false
48
61
  t.string "last_name", limit: 16, null: false
@@ -67,18 +80,18 @@ describe 'Ridgepole::Client#diff -> migrate' do
67
80
  end
68
81
 
69
82
  add_index "titles", ["emp_no"], name: "emp_no", using: :btree
70
- RUBY
83
+ EOS
71
84
  }
72
85
 
73
86
  let(:expected_dsl) {
74
- <<-RUBY
75
- create_table "clubs"#{unsigned_if_enabled}, force: :cascade do |t|
87
+ erbh(<<-EOS, template_variables)
88
+ create_table "clubs", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
76
89
  t.string "name", limit: 255, default: "", null: false
77
90
  end
78
91
 
79
92
  add_index "clubs", ["name"], name: "idx_name", unique: true, using: :btree
80
93
 
81
- create_table "departments", primary_key: "dept_no"#{unsigned_if_enabled}, force: :cascade do |t|
94
+ create_table "departments", primary_key: "dept_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
82
95
  t.string "dept_name", limit: 40, null: false
83
96
  end
84
97
 
@@ -104,14 +117,14 @@ describe 'Ridgepole::Client#diff -> migrate' do
104
117
  add_index "dept_manager", ["dept_no"], name: "dept_no", using: :btree
105
118
  add_index "dept_manager", ["emp_no"], name: "emp_no", using: :btree
106
119
 
107
- create_table "employee_clubs"#{unsigned_if_enabled}, force: :cascade do |t|
108
- t.integer "emp_no", limit: 4, null: false#{unsigned_if_enabled}
120
+ create_table "employee_clubs", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
121
+ t.integer "emp_no", <%= {limit: 4, null: false}.push(@unsigned).i %>
109
122
  t.integer "club_id", limit: 4
110
123
  end
111
124
 
112
125
  add_index "employee_clubs", ["emp_no", "club_id"], name: "idx_emp_no_club_id", using: :btree
113
126
 
114
- create_table "employees", primary_key: "emp_no"#{unsigned_if_enabled}, force: :cascade do |t|
127
+ create_table "employees", primary_key: "emp_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
115
128
  t.date "birth_date", null: false
116
129
  t.string "first_name", limit: 14, null: false
117
130
  t.string "last_name", limit: 20, default: "XXX", null: false
@@ -136,7 +149,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
136
149
  end
137
150
 
138
151
  add_index "titles", ["emp_no"], name: "emp_no", using: :btree
139
- RUBY
152
+ EOS
140
153
  }
141
154
 
142
155
  before { subject.diff(actual_dsl).migrate }
@@ -145,39 +158,38 @@ describe 'Ridgepole::Client#diff -> migrate' do
145
158
  it {
146
159
  delta = subject.diff(expected_dsl)
147
160
  expect(delta.differ?).to be_truthy
148
- expect(subject.dump).to eq actual_dsl.strip_heredoc.strip
161
+ expect(subject.dump).to match_fuzzy actual_dsl
149
162
  delta.migrate
150
- expect(subject.dump).to eq expected_dsl.strip_heredoc.strip.gsub(/(\s*,\s*unsigned: false)?\s*,\s*null: true/, '')
163
+ expect(subject.dump).to match_fuzzy expected_dsl
151
164
  }
152
165
 
153
166
  it {
154
167
  delta = Ridgepole::Client.diff(actual_dsl, expected_dsl, reverse: true, enable_mysql_unsigned: true)
155
168
  expect(delta.differ?).to be_truthy
156
- expect(delta.script).to eq <<-RUBY.strip_heredoc.strip
157
- change_column("employee_clubs", "club_id", :integer, {:null=>false#{unsigned_if_enabled2}, :default=>nil})
169
+ expect(delta.script).to match_fuzzy erbh(<<-EOS, template_variables)
170
+ change_column("employee_clubs", "club_id", :integer, <%= {:null=>false, :default=>nil}.insert(1, @unsigned) %>)
158
171
 
159
172
  change_column("employees", "last_name", :string, {:limit=>16, :default=>nil})
160
173
  change_column("employees", "gender", :string, {:limit=>1, :null=>false, :default=>nil})
161
- RUBY
174
+ EOS
162
175
  }
163
176
 
164
177
  it {
165
178
  delta = client(:bulk_change => true).diff(expected_dsl)
166
179
  expect(delta.differ?).to be_truthy
167
- expect(subject.dump).to eq actual_dsl.strip_heredoc.strip
168
- expect(delta.script).to eq <<-RUBY.strip_heredoc.strip
180
+ expect(subject.dump).to match_fuzzy actual_dsl
181
+ expect(delta.script).to match_fuzzy erbh(<<-EOS, template_variables)
169
182
  change_table("employee_clubs", {:bulk => true}) do |t|
170
- t.change("club_id", :integer, {:null=>true, :default=>nil#{unsigned_false_if_enabled2}})
183
+ t.change("club_id", :integer, <%= {:null=>true, :default=>nil}.push(@unsigned_false) %>)
171
184
  end
172
185
 
173
186
  change_table("employees", {:bulk => true}) do |t|
174
- t.change("last_name", :string, {:limit=>20, :default=>"XXX"#{unsigned_false_if_enabled2}})
175
- t.change("gender", :string, {:limit=>2, :null=>false, :default=>nil#{unsigned_false_if_enabled2}})
187
+ t.change("last_name", :string, <%= {:limit=>20, :default=>"XXX"}.push(@unsigned_false) %>)
188
+ t.change("gender", :string, <%= {:limit=>2, :null=>false, :default=>nil}.push(@unsigned_false) %>)
176
189
  end
177
- RUBY
190
+ EOS
178
191
  delta.migrate
179
- expect(subject.dump).to eq expected_dsl.strip_heredoc.strip.gsub(/(\s*,\s*unsigned: false)?\s*,\s*null: true/, '')
192
+ expect(subject.dump).to match_fuzzy expected_dsl
180
193
  }
181
194
  end
182
195
  end
183
- end
@@ -1,8 +1,7 @@
1
- unless postgresql?
2
1
  describe 'Ridgepole::Client#diff -> migrate' do
3
2
  context 'when change index (no change)' do
4
3
  let(:actual_dsl) {
5
- <<-RUBY
4
+ <<-EOS
6
5
  create_table "salaries", id: false, force: :cascade do |t|
7
6
  t.integer "emp_no", null: false
8
7
  t.integer "salary", null: false
@@ -11,11 +10,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
11
10
  end
12
11
 
13
12
  add_index "salaries", ["emp_no"], name: "emp_no", using: :btree
14
- RUBY
13
+ EOS
15
14
  }
16
15
 
17
16
  let(:expected_dsl) {
18
- <<-RUBY
17
+ <<-EOS
19
18
  create_table "salaries", id: false, force: :cascade do |t|
20
19
  t.integer "emp_no", null: false
21
20
  t.integer "salary", null: false
@@ -24,7 +23,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
24
23
  end
25
24
 
26
25
  add_index "salaries", "emp_no", name: "emp_no", using: :btree
27
- RUBY
26
+ EOS
28
27
  }
29
28
 
30
29
  before { subject.diff(actual_dsl).migrate }
@@ -38,7 +37,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
38
37
 
39
38
  context 'when change index (change)' do
40
39
  let(:actual_dsl) {
41
- <<-RUBY
40
+ <<-EOS
42
41
  create_table "salaries", id: false, force: :cascade do |t|
43
42
  t.integer "emp_no", limit: 4, null: false
44
43
  t.integer "salary", limit: 4, null: false
@@ -47,11 +46,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
47
46
  end
48
47
 
49
48
  add_index "salaries", ["emp_no"], name: "emp_no", using: :btree
50
- RUBY
49
+ EOS
51
50
  }
52
51
 
53
52
  let(:dsl) {
54
- <<-RUBY
53
+ <<-EOS
55
54
  create_table "salaries", id: false, force: :cascade do |t|
56
55
  t.integer "emp_no", null: false
57
56
  t.integer "salary", null: false
@@ -60,11 +59,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
60
59
  end
61
60
 
62
61
  add_index "salaries", "salary", name: "emp_no", using: :btree
63
- RUBY
62
+ EOS
64
63
  }
65
64
 
66
65
  let(:expected_dsl) {
67
- <<-RUBY
66
+ <<-EOS
68
67
  create_table "salaries", id: false, force: :cascade do |t|
69
68
  t.integer "emp_no", limit: 4, null: false
70
69
  t.integer "salary", limit: 4, null: false
@@ -73,7 +72,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
73
72
  end
74
73
 
75
74
  add_index "salaries", ["salary"], name: "emp_no", using: :btree
76
- RUBY
75
+ EOS
77
76
  }
78
77
 
79
78
  before { subject.diff(actual_dsl).migrate }
@@ -82,10 +81,9 @@ describe 'Ridgepole::Client#diff -> migrate' do
82
81
  it {
83
82
  delta = subject.diff(dsl)
84
83
  expect(delta.differ?).to be_truthy
85
- expect(subject.dump.delete_empty_lines).to eq actual_dsl.strip_heredoc.strip.delete_empty_lines
84
+ expect(subject.dump).to match_fuzzy actual_dsl
86
85
  delta.migrate
87
- expect(subject.dump.delete_empty_lines).to eq expected_dsl.strip_heredoc.strip.delete_empty_lines
86
+ expect(subject.dump).to match_fuzzy expected_dsl
88
87
  }
89
88
  end
90
89
  end
91
- end
@@ -1,8 +1,7 @@
1
- unless postgresql?
2
1
  describe 'Ridgepole::Client#diff -> migrate' do
3
2
  context 'when change index without using (no change)' do
4
3
  let(:actual_dsl) {
5
- <<-RUBY
4
+ <<-EOS
6
5
  create_table "salaries", id: false, force: :cascade do |t|
7
6
  t.integer "emp_no", null: false
8
7
  t.integer "salary", null: false
@@ -11,11 +10,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
11
10
  end
12
11
 
13
12
  add_index "salaries", ["emp_no"], name: "emp_no", using: :btree
14
- RUBY
13
+ EOS
15
14
  }
16
15
 
17
16
  let(:expected_dsl) {
18
- <<-RUBY
17
+ <<-EOS
19
18
  create_table "salaries", id: false, force: :cascade do |t|
20
19
  t.integer "emp_no", null: false
21
20
  t.integer "salary", null: false
@@ -24,7 +23,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
24
23
  end
25
24
 
26
25
  add_index "salaries", ["emp_no"], name: "emp_no"
27
- RUBY
26
+ EOS
28
27
  }
29
28
 
30
29
  before { subject.diff(actual_dsl).migrate }
@@ -38,7 +37,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
38
37
 
39
38
  context 'when change index without using (change)' do
40
39
  let(:actual_dsl) {
41
- <<-RUBY
40
+ <<-EOS
42
41
  create_table "salaries", id: false, force: :cascade do |t|
43
42
  t.integer "emp_no", limit: 4, null: false
44
43
  t.integer "salary", limit: 4, null: false
@@ -47,11 +46,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
47
46
  end
48
47
 
49
48
  add_index "salaries", ["emp_no"], name: "emp_no", using: :btree
50
- RUBY
49
+ EOS
51
50
  }
52
51
 
53
52
  let(:dsl) {
54
- <<-RUBY
53
+ <<-EOS
55
54
  create_table "salaries", id: false, force: :cascade do |t|
56
55
  t.integer "emp_no", null: false
57
56
  t.integer "salary", null: false
@@ -60,11 +59,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
60
59
  end
61
60
 
62
61
  add_index "salaries", ["salary"], using: :hash
63
- RUBY
62
+ EOS
64
63
  }
65
64
 
66
65
  let(:expected_dsl) {
67
- <<-RUBY
66
+ <<-EOS
68
67
  create_table "salaries", id: false, force: :cascade do |t|
69
68
  t.integer "emp_no", limit: 4, null: false
70
69
  t.integer "salary", limit: 4, null: false
@@ -73,7 +72,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
73
72
  end
74
73
 
75
74
  add_index "salaries", ["salary"], name: "index_salaries_on_salary", using: :hash
76
- RUBY
75
+ EOS
77
76
  }
78
77
 
79
78
  before { subject.diff(actual_dsl).migrate }
@@ -82,15 +81,15 @@ describe 'Ridgepole::Client#diff -> migrate' do
82
81
  it {
83
82
  delta = subject.diff(dsl)
84
83
  expect(delta.differ?).to be_truthy
85
- expect(subject.dump.delete_empty_lines).to eq actual_dsl.strip_heredoc.strip.delete_empty_lines
84
+ expect(subject.dump).to match_fuzzy actual_dsl
86
85
  delta.migrate
87
- expect(subject.dump.delete_empty_lines).to eq expected_dsl.strip_heredoc.strip.delete_empty_lines
86
+ expect(subject.dump).to match_fuzzy expected_dsl
88
87
  }
89
88
  end
90
89
 
91
90
  context 'when change index without name (no change)' do
92
91
  let(:actual_dsl) {
93
- <<-RUBY
92
+ <<-EOS
94
93
  create_table "salaries", id: false, force: :cascade do |t|
95
94
  t.integer "emp_no", null: false
96
95
  t.integer "salary", null: false
@@ -99,11 +98,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
99
98
  end
100
99
 
101
100
  add_index "salaries", ["emp_no"], name: "emp_no", using: :btree
102
- RUBY
101
+ EOS
103
102
  }
104
103
 
105
104
  let(:expected_dsl) {
106
- <<-RUBY
105
+ <<-EOS
107
106
  create_table "salaries", id: false, force: :cascade do |t|
108
107
  t.integer "emp_no", null: false
109
108
  t.integer "salary", null: false
@@ -112,7 +111,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
112
111
  end
113
112
 
114
113
  add_index "salaries", ["emp_no"], using: :btree
115
- RUBY
114
+ EOS
116
115
  }
117
116
 
118
117
  before { subject.diff(actual_dsl).migrate }
@@ -126,7 +125,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
126
125
 
127
126
  context 'when change index without name (change)' do
128
127
  let(:actual_dsl) {
129
- <<-RUBY
128
+ <<-EOS
130
129
  create_table "salaries", id: false, force: :cascade do |t|
131
130
  t.integer "emp_no", limit: 4, null: false
132
131
  t.integer "salary", limit: 4, null: false
@@ -135,11 +134,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
135
134
  end
136
135
 
137
136
  add_index "salaries", ["emp_no"], name: "emp_no", using: :btree
138
- RUBY
137
+ EOS
139
138
  }
140
139
 
141
140
  let(:dsl) {
142
- <<-RUBY
141
+ <<-EOS
143
142
  create_table "salaries", id: false, force: :cascade do |t|
144
143
  t.integer "emp_no", null: false
145
144
  t.integer "salary", null: false
@@ -148,11 +147,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
148
147
  end
149
148
 
150
149
  add_index "salaries", ["salary"], using: :btree
151
- RUBY
150
+ EOS
152
151
  }
153
152
 
154
153
  let(:expected_dsl) {
155
- <<-RUBY
154
+ <<-EOS
156
155
  create_table "salaries", id: false, force: :cascade do |t|
157
156
  t.integer "emp_no", limit: 4, null: false
158
157
  t.integer "salary", limit: 4, null: false
@@ -161,7 +160,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
161
160
  end
162
161
 
163
162
  add_index "salaries", ["salary"], name: "index_salaries_on_salary", using: :btree
164
- RUBY
163
+ EOS
165
164
  }
166
165
 
167
166
  before { subject.diff(actual_dsl).migrate }
@@ -170,10 +169,9 @@ describe 'Ridgepole::Client#diff -> migrate' do
170
169
  it {
171
170
  delta = subject.diff(dsl)
172
171
  expect(delta.differ?).to be_truthy
173
- expect(subject.dump.delete_empty_lines).to eq actual_dsl.strip_heredoc.strip.delete_empty_lines
172
+ expect(subject.dump).to match_fuzzy actual_dsl
174
173
  delta.migrate
175
- expect(subject.dump.delete_empty_lines).to eq expected_dsl.strip_heredoc.strip.delete_empty_lines
174
+ expect(subject.dump).to match_fuzzy expected_dsl
176
175
  }
177
176
  end
178
177
  end
179
- end
@@ -1,9 +1,20 @@
1
- unless postgresql?
2
1
  describe 'Ridgepole::Client#diff -> migrate' do
2
+ let(:template_variables) {
3
+ opts = {
4
+ unsigned: {}
5
+ }
6
+
7
+ if condition(:mysql_awesome_enabled)
8
+ opts[:unsigned] = {unsigned: true}
9
+ end
10
+
11
+ opts
12
+ }
13
+
3
14
  context 'when change index (same name)' do
4
15
  let(:actual_dsl) {
5
- <<-RUBY
6
- create_table "salaries"#{unsigned_if_enabled}, force: :cascade do |t|
16
+ erbh(<<-EOS, template_variables)
17
+ create_table "salaries", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
7
18
  t.integer "emp_no", limit: 4, null: false
8
19
  t.integer "salary", limit: 4, null: false
9
20
  t.date "from_date", null: false
@@ -11,12 +22,12 @@ describe 'Ridgepole::Client#diff -> migrate' do
11
22
  end
12
23
 
13
24
  add_index "salaries", ["emp_no", "id"], name: "emp_no", using: :btree
14
- RUBY
25
+ EOS
15
26
  }
16
27
 
17
28
  let(:expected_dsl) {
18
- <<-RUBY
19
- create_table "salaries"#{unsigned_if_enabled}, force: :cascade do |t|
29
+ erbh(<<-EOS, template_variables)
30
+ create_table "salaries", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
20
31
  t.integer "emp_no", limit: 4, null: false
21
32
  t.integer "salary", limit: 4, null: false
22
33
  t.date "from_date", null: false
@@ -24,7 +35,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
24
35
  end
25
36
 
26
37
  add_index "salaries", ["salary", "id"], name: "emp_no", using: :btree
27
- RUBY
38
+ EOS
28
39
  }
29
40
 
30
41
  before { subject.diff(actual_dsl).migrate }
@@ -33,15 +44,15 @@ describe 'Ridgepole::Client#diff -> migrate' do
33
44
  it {
34
45
  delta = subject.diff(expected_dsl)
35
46
  expect(delta.differ?).to be_truthy
36
- expect(subject.dump.delete_empty_lines).to eq actual_dsl.strip_heredoc.strip.delete_empty_lines
47
+ expect(subject.dump).to match_fuzzy actual_dsl
37
48
  delta.migrate
38
- expect(subject.dump.delete_empty_lines).to eq expected_dsl.strip_heredoc.strip.delete_empty_lines
49
+ expect(subject.dump).to match_fuzzy expected_dsl
39
50
  }
40
51
  end
41
52
 
42
53
  context 'when change index (same name) (2)' do
43
54
  let(:actual_dsl) {
44
- <<-RUBY
55
+ <<-EOS
45
56
  create_table "salaries", id: false, force: :cascade do |t|
46
57
  t.integer "emp_no", limit: 4, null: false
47
58
  t.integer "salary", limit: 4, null: false
@@ -50,11 +61,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
50
61
  end
51
62
 
52
63
  add_index "salaries", ["emp_no"], name: "emp_no", using: :btree
53
- RUBY
64
+ EOS
54
65
  }
55
66
 
56
67
  let(:expected_dsl) {
57
- <<-RUBY
68
+ <<-EOS
58
69
  create_table "salaries", id: false, force: :cascade do |t|
59
70
  t.integer "emp_no", limit: 4, null: false
60
71
  t.integer "salary", limit: 4, null: false
@@ -63,7 +74,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
63
74
  end
64
75
 
65
76
  add_index "salaries", ["salary"], name: "emp_no", using: :btree
66
- RUBY
77
+ EOS
67
78
  }
68
79
 
69
80
  before { subject.diff(actual_dsl).migrate }
@@ -72,35 +83,35 @@ describe 'Ridgepole::Client#diff -> migrate' do
72
83
  it {
73
84
  delta = subject.diff(expected_dsl)
74
85
  expect(delta.differ?).to be_truthy
75
- expect(subject.dump.delete_empty_lines).to eq actual_dsl.strip_heredoc.strip.delete_empty_lines
86
+ expect(subject.dump).to match_fuzzy actual_dsl
76
87
  delta.migrate
77
- expect(subject.dump.delete_empty_lines).to eq expected_dsl.strip_heredoc.strip.delete_empty_lines
88
+ expect(subject.dump).to match_fuzzy expected_dsl
78
89
  }
79
90
  end
80
91
 
81
92
  context 'when change index (same name) (3)' do
82
93
  let(:actual_dsl) {
83
- <<-RUBY
84
- create_table "salaries", primary_key: "emp_no"#{unsigned_if_enabled}, force: :cascade do |t|
94
+ erbh(<<-EOS, template_variables)
95
+ create_table "salaries", primary_key: "emp_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
85
96
  t.integer "salary", limit: 4, null: false
86
97
  t.date "from_date", null: false
87
98
  t.date "to_date", null: false
88
99
  end
89
100
 
90
101
  add_index "salaries", ["salary", "emp_no"], name: "emp_no", using: :btree
91
- RUBY
102
+ EOS
92
103
  }
93
104
 
94
105
  let(:expected_dsl) {
95
- <<-RUBY
96
- create_table "salaries", primary_key: "emp_no"#{unsigned_if_enabled}, force: :cascade do |t|
106
+ erbh(<<-EOS, template_variables)
107
+ create_table "salaries", primary_key: "emp_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
97
108
  t.integer "salary", limit: 4, null: false
98
109
  t.date "from_date", null: false
99
110
  t.date "to_date", null: false
100
111
  end
101
112
 
102
113
  add_index "salaries", ["from_date", "emp_no"], name: "emp_no", using: :btree
103
- RUBY
114
+ EOS
104
115
  }
105
116
 
106
117
  before { subject.diff(actual_dsl).migrate }
@@ -109,10 +120,9 @@ describe 'Ridgepole::Client#diff -> migrate' do
109
120
  it {
110
121
  delta = subject.diff(expected_dsl)
111
122
  expect(delta.differ?).to be_truthy
112
- expect(subject.dump.delete_empty_lines).to eq actual_dsl.strip_heredoc.strip.delete_empty_lines
123
+ expect(subject.dump).to match_fuzzy actual_dsl
113
124
  delta.migrate
114
- expect(subject.dump.delete_empty_lines).to eq expected_dsl.strip_heredoc.strip.delete_empty_lines
125
+ expect(subject.dump).to match_fuzzy expected_dsl
115
126
  }
116
127
  end
117
128
  end
118
- end