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,9 +1,8 @@
1
- unless postgresql?
2
1
  describe 'Ridgepole::Client#diff -> migrate' do
3
2
  context 'migrate with pre/post query' do
4
3
  let(:actual_dsl) { '' }
5
4
  let(:dsl) {
6
- <<-RUBY
5
+ <<-EOS
7
6
  create_table "clubs", force: :cascade do |t|
8
7
  t.string "name", default: "", null: false
9
8
  end
@@ -68,11 +67,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
68
67
  end
69
68
 
70
69
  add_index "titles", ["emp_no"], name: "emp_no", using: :btree
71
- RUBY
70
+ EOS
72
71
  }
73
72
 
74
73
  let(:expected_dsl) {
75
- <<-RUBY
74
+ <<-EOS
76
75
  create_table "clubs", force: :cascade do |t|
77
76
  t.string "name", limit: 255, default: "", null: false
78
77
  end
@@ -145,7 +144,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
145
144
  end
146
145
 
147
146
  add_index "titles", ["emp_no"], name: "emp_no", using: :btree
148
- RUBY
147
+ EOS
149
148
  }
150
149
 
151
150
  subject {
@@ -158,10 +157,9 @@ describe 'Ridgepole::Client#diff -> migrate' do
158
157
  it {
159
158
  delta = subject.diff(dsl)
160
159
  expect(delta.differ?).to be_truthy
161
- expect(subject.dump).to eq actual_dsl.strip_heredoc.strip
160
+ expect(subject.dump).to match_fuzzy actual_dsl
162
161
  delta.migrate
163
- expect(subject.dump).to eq expected_dsl.strip_heredoc.strip
162
+ expect(subject.dump).to match_fuzzy expected_dsl
164
163
  }
165
164
  end
166
165
  end
167
- end
@@ -1,8 +1,7 @@
1
- unless postgresql?
2
1
  describe 'Ridgepole::Client#diff -> migrate' do
3
2
  context 'when with tables option (same)' do
4
3
  let(:current_schema) {
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
@@ -19,11 +18,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
19
18
  end
20
19
 
21
20
  add_index "salaries", ["salary"], name: "emp_no", using: :btree
22
- RUBY
21
+ EOS
23
22
  }
24
23
 
25
24
  let(:dsl) {
26
- <<-RUBY
25
+ <<-EOS
27
26
  create_table "employees", primary_key: "emp_no", force: :cascade do |t|
28
27
  t.date "birth_date", null: false
29
28
  t.string "first_name", limit: 14, null: false
@@ -40,11 +39,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
40
39
  end
41
40
 
42
41
  add_index "salaries", ["emp_no"], name: "emp_no", using: :btree
43
- RUBY
42
+ EOS
44
43
  }
45
44
 
46
45
  let(:expected_dsl) {
47
- <<-RUBY
46
+ <<-EOS
48
47
  create_table "employees", primary_key: "emp_no", force: :cascade do |t|
49
48
  t.date "birth_date", null: false
50
49
  t.string "first_name", limit: 14, null: false
@@ -52,7 +51,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
52
51
  t.string "gender", limit: 1, null: false
53
52
  t.date "hire_date", null: false
54
53
  end
55
- RUBY
54
+ EOS
56
55
  }
57
56
 
58
57
  before { subject.diff(current_schema).migrate }
@@ -61,15 +60,15 @@ describe 'Ridgepole::Client#diff -> migrate' do
61
60
  it {
62
61
  delta = subject.diff(dsl)
63
62
  expect(delta.differ?).to be_falsey
64
- expect(subject.dump).to eq expected_dsl.strip_heredoc.strip
63
+ expect(subject.dump).to match_fuzzy expected_dsl
65
64
  delta.migrate
66
- expect(subject.dump).to eq expected_dsl.strip_heredoc.strip
65
+ expect(subject.dump).to match_fuzzy expected_dsl
67
66
  }
68
67
  end
69
68
 
70
69
  context 'when with tables option (differ)' do
71
70
  let(:current_schema) {
72
- <<-RUBY
71
+ <<-EOS
73
72
  create_table "employees", primary_key: "emp_no", force: :cascade do |t|
74
73
  t.date "birth_date", null: false
75
74
  t.string "first_name", limit: 14, null: false
@@ -86,11 +85,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
86
85
  end
87
86
 
88
87
  add_index "salaries", ["salary"], name: "emp_no", using: :btree
89
- RUBY
88
+ EOS
90
89
  }
91
90
 
92
91
  let(:dsl) {
93
- <<-RUBY
92
+ <<-EOS
94
93
  create_table "employees", primary_key: "emp_no", force: :cascade do |t|
95
94
  t.date "birth_date", null: false
96
95
  t.string "first_name", limit: 15, null: false
@@ -107,11 +106,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
107
106
  end
108
107
 
109
108
  add_index "salaries", ["emp_no"], name: "emp_no", using: :btree
110
- RUBY
109
+ EOS
111
110
  }
112
111
 
113
112
  let(:before_dsl) {
114
- <<-RUBY
113
+ <<-EOS
115
114
  create_table "employees", primary_key: "emp_no", force: :cascade do |t|
116
115
  t.date "birth_date", null: false
117
116
  t.string "first_name", limit: 14, null: false
@@ -119,11 +118,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
119
118
  t.string "gender", limit: 1, null: false
120
119
  t.date "hire_date", null: false
121
120
  end
122
- RUBY
121
+ EOS
123
122
  }
124
123
 
125
124
  let(:after_dsl) {
126
- <<-RUBY
125
+ <<-EOS
127
126
  create_table "employees", primary_key: "emp_no", force: :cascade do |t|
128
127
  t.date "birth_date", null: false
129
128
  t.string "first_name", limit: 15, null: false
@@ -131,7 +130,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
131
130
  t.string "gender", limit: 1, null: false
132
131
  t.date "hire_date", null: false
133
132
  end
134
- RUBY
133
+ EOS
135
134
  }
136
135
 
137
136
  before { subject.diff(current_schema).migrate }
@@ -140,18 +139,17 @@ describe 'Ridgepole::Client#diff -> migrate' do
140
139
  it {
141
140
  delta = subject.diff(dsl)
142
141
  expect(delta.differ?).to be_truthy
143
- expect(subject.dump).to eq before_dsl.strip_heredoc.strip
142
+ expect(subject.dump).to match_fuzzy before_dsl
144
143
  delta.migrate
145
- expect(subject.dump).to eq after_dsl.strip_heredoc.strip
144
+ expect(subject.dump).to match_fuzzy after_dsl
146
145
  }
147
146
 
148
147
  it {
149
148
  delta = Ridgepole::Client.diff(current_schema, dsl, tables: ['employees'], reverse: true, enable_mysql_awesome: true)
150
149
  expect(delta.differ?).to be_truthy
151
- expect(delta.script).to eq <<-RUBY.strip_heredoc.strip
150
+ expect(delta.script).to match_fuzzy <<-EOS
152
151
  change_column("employees", "first_name", :string, {:limit=>14, :null=>false, :default=>nil, :unsigned=>false})
153
- RUBY
152
+ EOS
154
153
  }
155
154
  end
156
155
  end
157
- 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 create 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) {
@@ -84,10 +95,9 @@ 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.delete_empty_lines).to eq actual_dsl.strip_heredoc.strip.delete_empty_lines
98
+ expect(subject.dump).to match_fuzzy actual_dsl
88
99
  delta.migrate
89
- expect(subject.dump.delete_empty_lines).to eq expected_dsl.strip_heredoc.strip.delete_empty_lines
100
+ expect(subject.dump).to match_fuzzy expected_dsl
90
101
  }
91
102
  end
92
103
  end
93
- 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,10 +95,9 @@ 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
  end
92
103
  end
93
- end
@@ -1,8 +1,7 @@
1
- unless postgresql?
2
1
  describe 'Ridgepole::Client#diff -> migrate' do
3
2
  context 'when change fk' do
4
3
  let(:actual_dsl) {
5
- <<-RUBY
4
+ <<-EOS
6
5
  create_table "parent", force: :cascade do |t|
7
6
  end
8
7
 
@@ -13,11 +12,11 @@ end
13
12
  add_index "child", ["parent_id"], name: "par_id", using: :btree
14
13
 
15
14
  add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc", on_delete: :cascade
16
- RUBY
15
+ EOS
17
16
  }
18
17
 
19
18
  let(:sorted_actual_dsl) {
20
- <<-RUBY
19
+ <<-EOS
21
20
  create_table "child", force: :cascade do |t|
22
21
  t.integer "parent_id", limit: 4
23
22
  end
@@ -28,11 +27,11 @@ create_table "parent", force: :cascade do |t|
28
27
  end
29
28
 
30
29
  add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc", on_delete: :cascade
31
- RUBY
30
+ EOS
32
31
  }
33
32
 
34
33
  let(:expected_dsl) {
35
- <<-RUBY
34
+ <<-EOS
36
35
  create_table "child", force: :cascade do |t|
37
36
  t.integer "parent_id", limit: 4
38
37
  end
@@ -43,7 +42,7 @@ create_table "parent", force: :cascade do |t|
43
42
  end
44
43
 
45
44
  add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
46
- RUBY
45
+ EOS
47
46
  }
48
47
 
49
48
  before { subject.diff(actual_dsl).migrate }
@@ -53,10 +52,9 @@ add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
53
52
  it {
54
53
  delta = subject.diff(expected_dsl)
55
54
  expect(delta.differ?).to be_truthy
56
- expect(subject.dump.delete_empty_lines).to eq sorted_actual_dsl.strip_heredoc.strip.delete_empty_lines
55
+ expect(subject.dump).to match_fuzzy sorted_actual_dsl
57
56
  delta.migrate
58
- expect(subject.dump.delete_empty_lines).to eq expected_dsl.strip_heredoc.strip.delete_empty_lines
57
+ expect(subject.dump).to match_fuzzy expected_dsl
59
58
  }
60
59
  end
61
60
  end
62
- end
@@ -1,24 +1,35 @@
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 create fk' do
4
15
  let(:actual_dsl) {
5
- <<-RUBY
6
- create_table "child"#{unsigned_if_enabled}, force: :cascade do |t|
7
- t.integer "parent_id", limit: 4#{unsigned_if_enabled}
16
+ erbh(<<-EOS, template_variables)
17
+ create_table "child", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
18
+ t.integer "parent_id", <%= {limit: 4}.push(@unsigned).i %>
8
19
  end
9
20
 
10
21
  add_index "child", ["parent_id"], name: "par_id", using: :btree
11
22
 
12
- create_table "parent"#{unsigned_if_enabled}, force: :cascade do |t|
23
+ create_table "parent", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
13
24
  end
14
- RUBY
25
+ EOS
15
26
  }
16
27
 
17
28
  let(:expected_dsl) {
18
- actual_dsl + (<<-RUBY)
29
+ actual_dsl + (<<-EOS)
19
30
 
20
31
  add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
21
- RUBY
32
+ EOS
22
33
  }
23
34
 
24
35
  before { subject.diff(actual_dsl).migrate }
@@ -27,34 +38,34 @@ add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
27
38
  it {
28
39
  delta = subject.diff(expected_dsl)
29
40
  expect(delta.differ?).to be_truthy
30
- expect(subject.dump.delete_empty_lines).to eq actual_dsl.strip_heredoc.strip.delete_empty_lines
41
+ expect(subject.dump).to match_fuzzy actual_dsl
31
42
  delta.migrate
32
- expect(subject.dump.delete_empty_lines).to eq expected_dsl.strip_heredoc.strip.delete_empty_lines
43
+ expect(subject.dump).to match_fuzzy expected_dsl
33
44
  }
34
45
 
35
46
  it {
36
47
  delta = Ridgepole::Client.diff(actual_dsl, expected_dsl, reverse: true, default_int_limit: 4, dumb_with_default_fk_name: true)
37
48
  expect(delta.differ?).to be_truthy
38
- expect(delta.script).to eq <<-RUBY.strip_heredoc.strip
49
+ expect(delta.script).to match_fuzzy <<-EOS
39
50
  remove_foreign_key("child", {:name=>"fk_rails_e74ce85cbc"})
40
- RUBY
51
+ EOS
41
52
  }
42
53
 
43
54
  it {
44
55
  delta = client(bulk_change: true, dumb_with_default_fk_name: true).diff(expected_dsl)
45
56
  expect(delta.differ?).to be_truthy
46
- expect(subject.dump.delete_empty_lines).to eq actual_dsl.strip_heredoc.strip.delete_empty_lines
47
- expect(delta.script).to eq <<-RUBY.strip_heredoc.strip
57
+ expect(subject.dump).to match_fuzzy actual_dsl
58
+ expect(delta.script).to match_fuzzy <<-EOS
48
59
  add_foreign_key("child", "parent", {:name=>"fk_rails_e74ce85cbc"})
49
- RUBY
60
+ EOS
50
61
  delta.migrate
51
- expect(subject.dump.delete_empty_lines).to eq expected_dsl.strip_heredoc.strip.delete_empty_lines
62
+ expect(subject.dump).to match_fuzzy expected_dsl
52
63
  }
53
64
  end
54
65
 
55
66
  context 'when create fk when create table' do
56
67
  let(:dsl) {
57
- <<-RUBY
68
+ <<-EOS
58
69
  # Define parent before child
59
70
  create_table "parent", force: :cascade do |t|
60
71
  end
@@ -66,11 +77,11 @@ end
66
77
  add_index "child", ["parent_id"], name: "par_id", using: :btree
67
78
 
68
79
  add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
69
- RUBY
80
+ EOS
70
81
  }
71
82
 
72
83
  let(:sorted_dsl) {
73
- <<-RUBY
84
+ <<-EOS
74
85
 
75
86
  create_table "child", force: :cascade do |t|
76
87
  t.integer "parent_id", limit: 4
@@ -82,7 +93,7 @@ create_table "parent", force: :cascade do |t|
82
93
  end
83
94
 
84
95
  add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
85
- RUBY
96
+ EOS
86
97
  }
87
98
 
88
99
  subject { client(dumb_with_default_fk_name: true) }
@@ -90,15 +101,15 @@ add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
90
101
  it {
91
102
  delta = subject.diff(dsl)
92
103
  expect(delta.differ?).to be_truthy
93
- expect(subject.dump.strip).to eq ''
104
+ expect(subject.dump).to match_fuzzy ''
94
105
  delta.migrate
95
- expect(subject.dump.delete_empty_lines).to eq sorted_dsl.strip_heredoc.strip.delete_empty_lines
106
+ expect(subject.dump).to match_fuzzy sorted_dsl
96
107
  }
97
108
  end
98
109
 
99
110
  context 'already defined' do
100
111
  let(:dsl) {
101
- <<-RUBY
112
+ <<-EOS
102
113
  # Define parent before child
103
114
  create_table "parent", force: :cascade do |t|
104
115
  end
@@ -112,7 +123,7 @@ add_index "child", ["parent_id"], name: "par_id", using: :btree
112
123
  add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
113
124
 
114
125
  add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
115
- RUBY
126
+ EOS
116
127
  }
117
128
 
118
129
  subject { client(dumb_with_default_fk_name: true) }
@@ -126,7 +137,7 @@ add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
126
137
 
127
138
  context 'no name' do
128
139
  let(:dsl) {
129
- <<-RUBY
140
+ <<-EOS
130
141
  # Define parent before child
131
142
  create_table "parent", force: :cascade do |t|
132
143
  end
@@ -138,7 +149,7 @@ end
138
149
  add_index "child", ["parent_id"], name: "par_id", using: :btree
139
150
 
140
151
  add_foreign_key "child", "parent"
141
- RUBY
152
+ EOS
142
153
  }
143
154
 
144
155
  subject { client(dumb_with_default_fk_name: true) }
@@ -152,13 +163,13 @@ add_foreign_key "child", "parent"
152
163
 
153
164
  context 'orphan fk' do
154
165
  let(:dsl) {
155
- <<-RUBY
166
+ <<-EOS
156
167
  # Define parent before child
157
168
  create_table "parent", force: :cascade do |t|
158
169
  end
159
170
 
160
171
  add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
161
- RUBY
172
+ EOS
162
173
  }
163
174
 
164
175
  subject { client(dumb_with_default_fk_name: true) }
@@ -170,4 +181,3 @@ add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
170
181
  }
171
182
  end
172
183
  end
173
- end
@@ -1,8 +1,7 @@
1
- unless postgresql?
2
1
  describe 'Ridgepole::Client#diff -> migrate' do
3
2
  context 'when drop fk' do
4
3
  let(:actual_dsl) {
5
- <<-RUBY
4
+ <<-EOS
6
5
  create_table "parent", force: :cascade do |t|
7
6
  end
8
7
 
@@ -13,18 +12,18 @@ end
13
12
  add_index "child", ["parent_id"], name: "par_id", using: :btree
14
13
 
15
14
  add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
16
- RUBY
15
+ EOS
17
16
  }
18
17
 
19
18
  let(:sorted_actual_dsl) {
20
- expected_dsl + (<<-RUBY)
19
+ expected_dsl + (<<-EOS)
21
20
 
22
21
  add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
23
- RUBY
22
+ EOS
24
23
  }
25
24
 
26
25
  let(:expected_dsl) {
27
- <<-RUBY
26
+ <<-EOS
28
27
  create_table "child", force: :cascade do |t|
29
28
  t.integer "parent_id", limit: 4
30
29
  end
@@ -33,7 +32,7 @@ add_index "child", ["parent_id"], name: "par_id", using: :btree
33
32
 
34
33
  create_table "parent", force: :cascade do |t|
35
34
  end
36
- RUBY
35
+ EOS
37
36
  }
38
37
 
39
38
  before { subject.diff(actual_dsl).migrate }
@@ -42,34 +41,34 @@ end
42
41
  it {
43
42
  delta = subject.diff(expected_dsl)
44
43
  expect(delta.differ?).to be_truthy
45
- expect(subject.dump).to eq sorted_actual_dsl.strip_heredoc.strip
44
+ expect(subject.dump).to match_fuzzy sorted_actual_dsl
46
45
  delta.migrate
47
- 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
46
+ expect(subject.dump).to match_fuzzy expected_dsl
48
47
  }
49
48
 
50
49
  it {
51
50
  delta = Ridgepole::Client.diff(actual_dsl, expected_dsl, reverse: true, default_int_limit: 4, dumb_with_default_fk_name: true)
52
51
  expect(delta.differ?).to be_truthy
53
- expect(delta.script).to eq <<-RUBY.strip_heredoc.strip
52
+ expect(delta.script).to match_fuzzy <<-EOS
54
53
  add_foreign_key("child", "parent", {:name=>"fk_rails_e74ce85cbc"})
55
- RUBY
54
+ EOS
56
55
  }
57
56
 
58
57
  it {
59
58
  delta = client(bulk_change: true, dumb_with_default_fk_name: true).diff(expected_dsl)
60
59
  expect(delta.differ?).to be_truthy
61
- expect(subject.dump).to eq sorted_actual_dsl.strip_heredoc.strip
62
- expect(delta.script).to eq <<-RUBY.strip_heredoc.strip
60
+ expect(subject.dump).to match_fuzzy sorted_actual_dsl
61
+ expect(delta.script).to match_fuzzy <<-EOS
63
62
  remove_foreign_key("child", {:name=>"fk_rails_e74ce85cbc"})
64
- RUBY
63
+ EOS
65
64
  delta.migrate
66
- 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
65
+ expect(subject.dump).to match_fuzzy expected_dsl
67
66
  }
68
67
  end
69
68
 
70
69
  context 'when drop fk when drop table' do
71
70
  let(:dsl) {
72
- <<-RUBY
71
+ <<-EOS
73
72
  create_table "parent", force: :cascade do |t|
74
73
  end
75
74
 
@@ -81,11 +80,11 @@ end
81
80
  add_index "child", ["parent_id"], name: "par_id", using: :btree
82
81
 
83
82
  add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
84
- RUBY
83
+ EOS
85
84
  }
86
85
 
87
86
  let(:sorted_dsl) {
88
- <<-RUBY
87
+ <<-EOS
89
88
  create_table "child", force: :cascade do |t|
90
89
  t.integer "parent_id", limit: 4
91
90
  end
@@ -96,7 +95,7 @@ create_table "parent", force: :cascade do |t|
96
95
  end
97
96
 
98
97
  add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
99
- RUBY
98
+ EOS
100
99
  }
101
100
 
102
101
  before { subject.diff(dsl).migrate }
@@ -105,10 +104,9 @@ add_foreign_key "child", "parent", name: "fk_rails_e74ce85cbc"
105
104
  it {
106
105
  delta = subject.diff('')
107
106
  expect(delta.differ?).to be_truthy
108
- expect(subject.dump).to eq sorted_dsl.strip_heredoc.strip
107
+ expect(subject.dump).to match_fuzzy sorted_dsl
109
108
  delta.migrate
110
- expect(subject.dump.strip).to eq ''
109
+ expect(subject.dump).to match_fuzzy ''
111
110
  }
112
111
  end
113
112
  end
114
- end