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,15 +1,26 @@
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 drop column' do
4
15
  let(:actual_dsl) {
5
- <<-RUBY
6
- create_table "clubs"#{unsigned_if_enabled}, force: :cascade do |t|
16
+ erbh(<<-EOS, template_variables)
17
+ create_table "clubs", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
7
18
  t.string "name", limit: 255, default: "", null: false
8
19
  end
9
20
 
10
21
  add_index "clubs", ["name"], name: "idx_name", unique: true, using: :btree
11
22
 
12
- create_table "departments", primary_key: "dept_no"#{unsigned_if_enabled}, force: :cascade do |t|
23
+ create_table "departments", primary_key: "dept_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
13
24
  t.string "dept_name", limit: 40, null: false
14
25
  end
15
26
 
@@ -35,14 +46,14 @@ describe 'Ridgepole::Client#diff -> migrate' do
35
46
  add_index "dept_manager", ["dept_no"], name: "dept_no", using: :btree
36
47
  add_index "dept_manager", ["emp_no"], name: "emp_no", using: :btree
37
48
 
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}
49
+ create_table "employee_clubs", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
50
+ t.integer "emp_no", <%= {limit: 4, null: false}.push(@unsigned).i %>
51
+ t.integer "club_id", <%= {limit: 4, null: false}.push(@unsigned).i %>
41
52
  end
42
53
 
43
54
  add_index "employee_clubs", ["emp_no", "club_id"], name: "idx_emp_no_club_id", using: :btree
44
55
 
45
- create_table "employees", primary_key: "emp_no"#{unsigned_if_enabled}, force: :cascade do |t|
56
+ create_table "employees", primary_key: "emp_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
46
57
  t.date "birth_date", null: false
47
58
  t.string "first_name", limit: 14, null: false
48
59
  t.string "last_name", limit: 16, null: false
@@ -67,18 +78,18 @@ describe 'Ridgepole::Client#diff -> migrate' do
67
78
  end
68
79
 
69
80
  add_index "titles", ["emp_no"], name: "emp_no", using: :btree
70
- RUBY
81
+ EOS
71
82
  }
72
83
 
73
84
  let(:expected_dsl) {
74
- <<-RUBY
75
- create_table "clubs"#{unsigned_if_enabled}, force: :cascade do |t|
85
+ erbh(<<-EOS, template_variables)
86
+ create_table "clubs", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
76
87
  t.string "name", limit: 255, default: "", null: false
77
88
  end
78
89
 
79
90
  add_index "clubs", ["name"], name: "idx_name", unique: true, using: :btree
80
91
 
81
- create_table "departments", primary_key: "dept_no"#{unsigned_if_enabled}, force: :cascade do |t|
92
+ create_table "departments", primary_key: "dept_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
82
93
  t.string "dept_name", limit: 40, null: false
83
94
  end
84
95
 
@@ -100,14 +111,14 @@ describe 'Ridgepole::Client#diff -> migrate' do
100
111
  add_index "dept_manager", ["dept_no"], name: "dept_no", using: :btree
101
112
  add_index "dept_manager", ["emp_no"], name: "emp_no", using: :btree
102
113
 
103
- create_table "employee_clubs"#{unsigned_if_enabled}, force: :cascade do |t|
104
- t.integer "emp_no", limit: 4, null: false#{unsigned_if_enabled}
105
- t.integer "club_id", limit: 4, null: false#{unsigned_if_enabled}
114
+ create_table "employee_clubs", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
115
+ t.integer "emp_no", <%= {limit: 4, null: false}.push(@unsigned).i %>
116
+ t.integer "club_id", <%= {limit: 4, null: false}.push(@unsigned).i %>
106
117
  end
107
118
 
108
119
  add_index "employee_clubs", ["emp_no", "club_id"], name: "idx_emp_no_club_id", using: :btree
109
120
 
110
- create_table "employees", primary_key: "emp_no"#{unsigned_if_enabled}, force: :cascade do |t|
121
+ create_table "employees", primary_key: "emp_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
111
122
  t.date "birth_date", null: false
112
123
  t.string "first_name", limit: 14, null: false
113
124
  end
@@ -129,7 +140,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
129
140
  end
130
141
 
131
142
  add_index "titles", ["emp_no"], name: "emp_no", using: :btree
132
- RUBY
143
+ EOS
133
144
  }
134
145
 
135
146
  before { subject.diff(actual_dsl).migrate }
@@ -138,15 +149,15 @@ describe 'Ridgepole::Client#diff -> migrate' do
138
149
  it {
139
150
  delta = subject.diff(expected_dsl)
140
151
  expect(delta.differ?).to be_truthy
141
- expect(subject.dump).to eq actual_dsl.strip_heredoc.strip
152
+ expect(subject.dump).to match_fuzzy actual_dsl
142
153
  delta.migrate
143
- expect(subject.dump).to eq expected_dsl.strip_heredoc.strip
154
+ expect(subject.dump).to match_fuzzy expected_dsl
144
155
  }
145
156
 
146
157
  it {
147
158
  delta = Ridgepole::Client.diff(actual_dsl, expected_dsl, reverse: true)
148
159
  expect(delta.differ?).to be_truthy
149
- expect(delta.script).to eq <<-RUBY.strip_heredoc.strip
160
+ expect(delta.script).to match_fuzzy <<-EOS
150
161
  add_column("dept_emp", "from_date", :date, {:null=>false, :after=>"dept_no"})
151
162
  add_column("dept_emp", "to_date", :date, {:null=>false, :after=>"from_date"})
152
163
 
@@ -156,14 +167,14 @@ describe 'Ridgepole::Client#diff -> migrate' do
156
167
  add_column("employees", "last_name", :string, {:limit=>16, :null=>false, :after=>"first_name"})
157
168
  add_column("employees", "gender", :string, {:limit=>1, :null=>false, :after=>"last_name"})
158
169
  add_column("employees", "hire_date", :date, {:null=>false, :after=>"gender"})
159
- RUBY
170
+ EOS
160
171
  }
161
172
 
162
173
  it {
163
174
  delta = client(:bulk_change => true).diff(expected_dsl)
164
175
  expect(delta.differ?).to be_truthy
165
- expect(subject.dump).to eq actual_dsl.strip_heredoc.strip
166
- expect(delta.script).to eq <<-RUBY.strip_heredoc.strip
176
+ expect(subject.dump).to match_fuzzy actual_dsl
177
+ expect(delta.script).to match_fuzzy <<-EOS
167
178
  change_table("dept_emp", {:bulk => true}) do |t|
168
179
  t.remove("from_date")
169
180
  t.remove("to_date")
@@ -179,10 +190,9 @@ describe 'Ridgepole::Client#diff -> migrate' do
179
190
  t.remove("gender")
180
191
  t.remove("hire_date")
181
192
  end
182
- RUBY
193
+ EOS
183
194
  delta.migrate
184
- expect(subject.dump).to eq expected_dsl.strip_heredoc.strip
195
+ expect(subject.dump).to match_fuzzy expected_dsl
185
196
  }
186
197
  end
187
198
  end
188
- end
@@ -1,15 +1,26 @@
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 drop index' do
4
15
  let(:dsl) {
5
- <<-RUBY
6
- create_table "clubs"#{unsigned_if_enabled}, force: :cascade do |t|
16
+ erbh(<<-EOS, template_variables)
17
+ create_table "clubs", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
7
18
  t.string "name", limit: 255, default: "", null: false
8
19
  end
9
20
 
10
21
  add_index "clubs", ["name"], name: "idx_name", unique: true, using: :btree
11
22
 
12
- create_table "departments", primary_key: "dept_no"#{unsigned_if_enabled}, force: :cascade do |t|
23
+ create_table "departments", primary_key: "dept_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
13
24
  t.string "dept_name", limit: 40, null: false
14
25
  end
15
26
 
@@ -35,14 +46,14 @@ describe 'Ridgepole::Client#diff -> migrate' do
35
46
  add_index "dept_manager", ["dept_no"], name: "dept_no", using: :btree
36
47
  add_index "dept_manager", ["emp_no"], name: "emp_no", using: :btree
37
48
 
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}
49
+ create_table "employee_clubs", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
50
+ t.integer "emp_no", <%= {limit: 4, null: false}.push(@unsigned).i %>
51
+ t.integer "club_id", <%= {limit: 4, null: false}.push(@unsigned).i %>
41
52
  end
42
53
 
43
54
  add_index "employee_clubs", ["emp_no", "club_id"], name: "idx_emp_no_club_id", using: :btree
44
55
 
45
- create_table "employees", primary_key: "emp_no"#{unsigned_if_enabled}, force: :cascade do |t|
56
+ create_table "employees", primary_key: "emp_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
46
57
  t.date "birth_date", null: false
47
58
  t.string "first_name", limit: 14, null: false
48
59
  t.string "last_name", limit: 16, null: false
@@ -67,7 +78,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
67
78
  end
68
79
 
69
80
  add_index "titles", ["emp_no"], name: "emp_no", using: :btree
70
- RUBY
81
+ EOS
71
82
  }
72
83
 
73
84
  let(:actual_dsl) { dsl }
@@ -84,28 +95,28 @@ describe 'Ridgepole::Client#diff -> migrate' do
84
95
  it {
85
96
  delta = subject.diff(expected_dsl)
86
97
  expect(delta.differ?).to be_truthy
87
- expect(subject.dump).to eq actual_dsl.strip_heredoc.strip
98
+ expect(subject.dump).to match_fuzzy actual_dsl
88
99
  delta.migrate
89
- expect(subject.dump.each_line.select {|i| i !~ /\A\Z/ }.join).to eq expected_dsl.strip_heredoc.strip.each_line.select {|i| i !~ /\A\Z/ }.join
100
+ expect(subject.dump).to match_fuzzy expected_dsl
90
101
  }
91
102
 
92
103
  it {
93
104
  delta = Ridgepole::Client.diff(actual_dsl, expected_dsl, reverse: true)
94
105
  expect(delta.differ?).to be_truthy
95
- expect(delta.script).to eq <<-RUBY.strip_heredoc.strip
106
+ expect(delta.script).to match_fuzzy <<-EOS
96
107
  add_index("clubs", ["name"], {:name=>"idx_name", :unique=>true, :using=>:btree})
97
108
 
98
109
  add_index("employee_clubs", ["emp_no", "club_id"], {:name=>"idx_emp_no_club_id", :using=>:btree})
99
110
 
100
111
  add_index("titles", ["emp_no"], {:name=>"emp_no", :using=>:btree})
101
- RUBY
112
+ EOS
102
113
  }
103
114
 
104
115
  it {
105
116
  delta = client(:bulk_change => true).diff(expected_dsl)
106
117
  expect(delta.differ?).to be_truthy
107
- expect(subject.dump).to eq actual_dsl.strip_heredoc.strip
108
- expect(delta.script).to eq <<-RUBY.strip_heredoc.strip
118
+ expect(subject.dump).to match_fuzzy actual_dsl
119
+ expect(delta.script).to match_fuzzy <<-EOS
109
120
  change_table("clubs", {:bulk => true}) do |t|
110
121
  t.remove_index({:name=>"idx_name"})
111
122
  end
@@ -117,10 +128,9 @@ describe 'Ridgepole::Client#diff -> migrate' do
117
128
  change_table("titles", {:bulk => true}) do |t|
118
129
  t.remove_index({:name=>"emp_no"})
119
130
  end
120
- RUBY
131
+ EOS
121
132
  delta.migrate
122
- expect(subject.dump.each_line.select {|i| i !~ /\A\Z/ }.join).to eq expected_dsl.strip_heredoc.strip.each_line.select {|i| i !~ /\A\Z/ }.join
133
+ expect(subject.dump).to match_fuzzy expected_dsl
123
134
  }
124
135
  end
125
136
  end
126
- end
@@ -1,15 +1,26 @@
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 drop table' do
4
15
  let(:dsl) {
5
- <<-RUBY
6
- create_table "clubs"#{unsigned_if_enabled}, force: :cascade do |t|
16
+ erbh(<<-EOS, template_variables)
17
+ create_table "clubs", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
7
18
  t.string "name", limit: 255, default: "", null: false
8
19
  end
9
20
 
10
21
  add_index "clubs", ["name"], name: "idx_name", unique: true, using: :btree
11
22
 
12
- create_table "departments", primary_key: "dept_no"#{unsigned_if_enabled}, force: :cascade do |t|
23
+ create_table "departments", primary_key: "dept_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
13
24
  t.string "dept_name", limit: 40, null: false
14
25
  end
15
26
 
@@ -35,14 +46,14 @@ describe 'Ridgepole::Client#diff -> migrate' do
35
46
  add_index "dept_manager", ["dept_no"], name: "dept_no", using: :btree
36
47
  add_index "dept_manager", ["emp_no"], name: "emp_no", using: :btree
37
48
 
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}
49
+ create_table "employee_clubs", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
50
+ t.integer "emp_no", <%= {limit: 4, null: false}.push(@unsigned).i %>
51
+ t.integer "club_id", <%= {limit: 4, null: false}.push(@unsigned).i %>
41
52
  end
42
53
 
43
54
  add_index "employee_clubs", ["emp_no", "club_id"], name: "idx_emp_no_club_id", using: :btree
44
55
 
45
- create_table "employees", primary_key: "emp_no"#{unsigned_if_enabled}, force: :cascade do |t|
56
+ create_table "employees", primary_key: "emp_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
46
57
  t.date "birth_date", null: false
47
58
  t.string "first_name", limit: 14, null: false
48
59
  t.string "last_name", limit: 16, null: false
@@ -67,7 +78,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
67
78
  end
68
79
 
69
80
  add_index "titles", ["emp_no"], name: "emp_no", using: :btree
70
- RUBY
81
+ EOS
71
82
  }
72
83
 
73
84
  let(:actual_dsl) { dsl }
@@ -84,35 +95,34 @@ describe 'Ridgepole::Client#diff -> migrate' do
84
95
  it {
85
96
  delta = subject.diff(expected_dsl)
86
97
  expect(delta.differ?).to be_truthy
87
- expect(subject.dump).to eq actual_dsl.strip_heredoc.strip
98
+ expect(subject.dump).to match_fuzzy actual_dsl
88
99
  delta.migrate
89
- expect(subject.dump.each_line.select {|i| i !~ /\A\Z/ }.join).to eq expected_dsl.strip_heredoc.strip.each_line.select {|i| i !~ /\A\Z/ }.join
100
+ expect(subject.dump).to match_fuzzy expected_dsl
90
101
  }
91
102
 
92
103
  it {
93
104
  delta = Ridgepole::Client.diff(actual_dsl, expected_dsl, reverse: true)
94
105
  expect(delta.differ?).to be_truthy
95
- expect(delta.script).to eq <<-RUBY.strip_heredoc.strip
96
- create_table("clubs", {#{unsigned_if_enabled2('')}}) do |t|
106
+ expect(delta.script).to match_fuzzy erbh(<<-EOS, template_variables)
107
+ create_table("clubs", <%= @unsigned %>) do |t|
97
108
  t.string("name", {:limit=>255, :default=>"", :null=>false})
98
109
  end
99
110
  add_index("clubs", ["name"], {:name=>"idx_name", :unique=>true, :using=>:btree})
100
111
 
101
- create_table("employee_clubs", {#{unsigned_if_enabled2('')}}) do |t|
102
- t.integer("emp_no", {:limit=>4, :null=>false#{unsigned_if_enabled2}})
103
- t.integer("club_id", {:limit=>4, :null=>false#{unsigned_if_enabled2}})
112
+ create_table("employee_clubs", <%= @unsigned %>) do |t|
113
+ t.integer("emp_no", <%= {:limit=>4, :null=>false}.push(@unsigned) %>)
114
+ t.integer("club_id", <%= {:limit=>4, :null=>false}.push(@unsigned) %>)
104
115
  end
105
116
  add_index("employee_clubs", ["emp_no", "club_id"], {:name=>"idx_emp_no_club_id", :using=>:btree})
106
117
 
107
- create_table("employees", {:primary_key=>"emp_no"#{unsigned_if_enabled2}}) do |t|
118
+ create_table("employees", <%= {:primary_key=>"emp_no"}.push(@unsigned) %>) do |t|
108
119
  t.date("birth_date", {:null=>false})
109
120
  t.string("first_name", {:limit=>14, :null=>false})
110
121
  t.string("last_name", {:limit=>16, :null=>false})
111
122
  t.string("gender", {:limit=>1, :null=>false})
112
123
  t.date("hire_date", {:null=>false})
113
124
  end
114
- RUBY
125
+ EOS
115
126
  }
116
127
  end
117
128
  end
118
- end
@@ -1,8 +1,7 @@
1
- unless postgresql?
2
1
  describe 'Ridgepole::Client#diff -> migrate' do
3
2
  context 'when index already defined' do
4
3
  let(: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
@@ -12,7 +11,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
12
11
 
13
12
  add_index "salaries", ["emp_no"], name: "emp_no", using: :btree
14
13
  add_index "salaries", ["emp_no"], name: "emp_no", using: :btree
15
- RUBY
14
+ EOS
16
15
  }
17
16
 
18
17
  subject { client }
@@ -24,4 +23,3 @@ describe 'Ridgepole::Client#diff -> migrate' do
24
23
  }
25
24
  end
26
25
  end
27
- end
@@ -1,8 +1,7 @@
1
- unless postgresql?
2
1
  describe 'Ridgepole::Client#diff -> migrate' do
3
2
  context 'when table already defined' do
4
3
  let(:dsl) {
5
- <<-RUBY
4
+ <<-EOS
6
5
  create_table "employees", primary_key: "emp_no", force: :cascade do |t|
7
6
  t.date "birth_date", null: false
8
7
  t.string "first_name", limit: 14, null: false
@@ -22,7 +21,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
22
21
  t.integer "age", unsigned: true, null: false
23
22
  t.date "updated_at"
24
23
  end
25
- RUBY
24
+ EOS
26
25
  }
27
26
 
28
27
  subject { client }
@@ -34,4 +33,3 @@ describe 'Ridgepole::Client#diff -> migrate' do
34
33
  }
35
34
  end
36
35
  end
37
- end
@@ -1,16 +1,27 @@
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 database is empty' do
4
15
  let(:actual_dsl) { '' }
5
16
  let(:expected_dsl) {
6
- <<-RUBY
7
- create_table "clubs"#{unsigned_if_enabled}, force: :cascade do |t|
17
+ erbh(<<-EOS, template_variables)
18
+ create_table "clubs", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
8
19
  t.string "name", limit: 255, default: "", null: false
9
20
  end
10
21
 
11
22
  add_index "clubs", ["name"], name: "idx_name", unique: true, using: :btree
12
23
 
13
- create_table "departments", primary_key: "dept_no"#{unsigned_if_enabled}, force: :cascade do |t|
24
+ create_table "departments", primary_key: "dept_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
14
25
  t.string "dept_name", limit: 40, null: false
15
26
  end
16
27
 
@@ -36,14 +47,14 @@ describe 'Ridgepole::Client#diff -> migrate' do
36
47
  add_index "dept_manager", ["dept_no"], name: "dept_no", using: :btree
37
48
  add_index "dept_manager", ["emp_no"], name: "emp_no", using: :btree
38
49
 
39
- create_table "employee_clubs"#{unsigned_if_enabled}, force: :cascade do |t|
40
- t.integer "emp_no", limit: 4, null: false#{unsigned_if_enabled}
41
- t.integer "club_id", limit: 4, null: false#{unsigned_if_enabled}
50
+ create_table "employee_clubs", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
51
+ t.integer "emp_no", <%= {limit: 4, null: false}.push(@unsigned).i %>
52
+ t.integer "club_id", <%= {limit: 4, null: false}.push(@unsigned).i %>
42
53
  end
43
54
 
44
55
  add_index "employee_clubs", ["emp_no", "club_id"], name: "idx_emp_no_club_id", using: :btree
45
56
 
46
- create_table "employees", primary_key: "emp_no"#{unsigned_if_enabled}, force: :cascade do |t|
57
+ create_table "employees", primary_key: "emp_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
47
58
  t.date "birth_date", null: false
48
59
  t.string "first_name", limit: 14, null: false
49
60
  t.string "last_name", limit: 16, null: false
@@ -68,7 +79,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
68
79
  end
69
80
 
70
81
  add_index "titles", ["emp_no"], name: "emp_no", using: :btree
71
- RUBY
82
+ EOS
72
83
  }
73
84
 
74
85
  subject { client }
@@ -76,15 +87,15 @@ describe 'Ridgepole::Client#diff -> migrate' do
76
87
  it {
77
88
  delta = subject.diff(expected_dsl)
78
89
  expect(delta.differ?).to be_truthy
79
- expect(subject.dump).to eq actual_dsl.strip_heredoc.strip
90
+ expect(subject.dump).to match_fuzzy actual_dsl
80
91
  delta.migrate
81
- expect(subject.dump).to eq expected_dsl.strip_heredoc.strip
92
+ expect(subject.dump).to match_fuzzy expected_dsl
82
93
  }
83
94
 
84
95
  it {
85
96
  delta = Ridgepole::Client.diff(actual_dsl, expected_dsl, reverse: true)
86
97
  expect(delta.differ?).to be_truthy
87
- expect(delta.script).to eq <<-RUBY.strip_heredoc.strip
98
+ expect(delta.script).to match_fuzzy <<-EOS
88
99
  drop_table("clubs")
89
100
 
90
101
  drop_table("departments")
@@ -100,8 +111,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
100
111
  drop_table("salaries")
101
112
 
102
113
  drop_table("titles")
103
- RUBY
114
+ EOS
104
115
  }
105
116
  end
106
117
  end
107
- end