ridgepole 0.6.4 → 0.6.5.beta

Sign up to get free protection for your applications and to get access to all the features.
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,30 @@
1
- unless postgresql?
2
1
  describe 'Ridgepole::Client#diff -> migrate' do
2
+ let(:template_variables) {
3
+ opts = {
4
+ unsigned: {},
5
+ string_id: {},
6
+ int_id: {},
7
+ }
8
+
9
+ if condition(:mysql_awesome_enabled)
10
+ opts[:unsigned] = {unsigned: true}
11
+ opts[:string_id] = {id: :string, limit: 4}
12
+ opts[:int_id] = {id: :integer, limit: 4}
13
+ end
14
+
15
+ opts
16
+ }
17
+
3
18
  context 'when database and definition are same' do
4
19
  let(:dsl) {
5
- <<-RUBY
6
- create_table "clubs"#{unsigned_if_enabled}, force: :cascade do |t|
20
+ erbh(<<-EOS, template_variables)
21
+ create_table "clubs", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
7
22
  t.string "name", limit: 255, default: "", null: false
8
23
  end
9
24
 
10
25
  add_index "clubs", ["name"], name: "idx_name", unique: true, using: :btree
11
26
 
12
- create_table "departments", primary_key: "dept_no",#{mysql_awesome_enabled? ? ' id: :string, limit: 4,' : ''} force: :cascade do |t|
27
+ create_table "departments", primary_key: "dept_no", <%= {force: :cascade}.unshift(@string_id).i %> do |t|
13
28
  t.string "dept_name", limit: 40, null: false
14
29
  end
15
30
 
@@ -35,14 +50,14 @@ describe 'Ridgepole::Client#diff -> migrate' do
35
50
  add_index "dept_manager", ["dept_no"], name: "dept_no", using: :btree
36
51
  add_index "dept_manager", ["emp_no"], name: "emp_no", using: :btree
37
52
 
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}
53
+ create_table "employee_clubs", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
54
+ t.integer "emp_no", <%= {limit: 4, null: false}.push(@unsigned).i %>
55
+ t.integer "club_id", <%= {limit: 4, null: false}.push(@unsigned).i %>
41
56
  end
42
57
 
43
58
  add_index "employee_clubs", ["emp_no", "club_id"], name: "idx_emp_no_club_id", using: :btree
44
59
 
45
- create_table "employees", primary_key: "emp_no",#{mysql_awesome_enabled? ? ' id: :integer, limit: 4,' : ''} force: :cascade do |t|
60
+ create_table "employees", primary_key: "emp_no", <%= {force: :cascade}.unshift(@int_id).i %> do |t|
46
61
  t.date "birth_date", null: false
47
62
  t.string "first_name", limit: 14, null: false
48
63
  t.string "last_name", limit: 16, null: false
@@ -67,7 +82,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
67
82
  end
68
83
 
69
84
  add_index "titles", ["emp_no"], name: "emp_no", using: :btree
70
- RUBY
85
+ EOS
71
86
  }
72
87
 
73
88
  before { restore_tables }
@@ -76,10 +91,9 @@ describe 'Ridgepole::Client#diff -> migrate' do
76
91
  it {
77
92
  delta = subject.diff(dsl)
78
93
  expect(delta.differ?).to be_falsey
79
- expect(subject.dump).to eq dsl.strip_heredoc.strip
94
+ expect(subject.dump).to match_fuzzy dsl
80
95
  delta.migrate
81
- expect(subject.dump).to eq dsl.strip_heredoc.strip
96
+ expect(subject.dump).to match_fuzzy dsl
82
97
  }
83
98
  end
84
99
  end
85
- end
@@ -1,9 +1,8 @@
1
- unless postgresql?
2
1
  describe 'Ridgepole::Client#diff -> migrate' do
3
2
  context 'when there is an error in the script' do
4
3
  let(:actual_dsl) { '' }
5
4
  let(:expected_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,7 +67,7 @@ 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
  subject { client }
@@ -76,7 +75,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
76
75
  it {
77
76
  delta = subject.diff(expected_dsl)
78
77
  expect(delta.differ?).to be_truthy
79
- expect(subject.dump).to eq actual_dsl.strip_heredoc.strip
78
+ expect(subject.dump).to match_fuzzy actual_dsl
80
79
 
81
80
  errmsg = Regexp.new(Regexp.escape <<-EOS.strip)
82
81
  33: add_index("employee_clubs", ["emp_no", "Xclub_id"], {:name=>"idx_emp_no_club_id", :using=>:btree})
@@ -88,4 +87,3 @@ describe 'Ridgepole::Client#diff -> migrate' do
88
87
  }
89
88
  end
90
89
  end
91
- 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 rename 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
 
@@ -104,14 +115,14 @@ describe 'Ridgepole::Client#diff -> migrate' do
104
115
  add_index "dept_manager", ["dept_no"], name: "dept_no", using: :btree
105
116
  add_index "dept_manager", ["emp_no"], name: "emp_no", using: :btree
106
117
 
107
- create_table "employee_clubs"#{unsigned_if_enabled}, force: :cascade do |t|
108
- t.integer "emp_no", limit: 4, null: false#{unsigned_if_enabled}
109
- t.integer "club_id", limit: 4, null: false#{unsigned_if_enabled}
118
+ create_table "employee_clubs", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
119
+ t.integer "emp_no", <%= {limit: 4, null: false}.push(@unsigned).i %>
120
+ t.integer "club_id", <%= {limit: 4, null: false}.push(@unsigned).i %>
110
121
  end
111
122
 
112
123
  add_index "employee_clubs", ["emp_no", "club_id"], name: "idx_emp_no_club_id", using: :btree
113
124
 
114
- create_table "employees", primary_key: "emp_no"#{unsigned_if_enabled}, force: :cascade do |t|
125
+ create_table "employees", primary_key: "emp_no", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
115
126
  t.date "birth_date", null: false
116
127
  t.string "first_name", limit: 14, null: false
117
128
  t.string "last_name", limit: 16, null: false
@@ -136,7 +147,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
136
147
  end
137
148
 
138
149
  add_index "titles", ["emp_no"], name: "emp_no", using: :btree
139
- RUBY
150
+ EOS
140
151
  }
141
152
 
142
153
  before { subject.diff(actual_dsl).migrate }
@@ -145,9 +156,9 @@ describe 'Ridgepole::Client#diff -> migrate' do
145
156
  it {
146
157
  delta = subject.diff(expected_dsl)
147
158
  expect(delta.differ?).to be_falsey
148
- expect(subject.dump).to eq actual_dsl.strip_heredoc.strip
159
+ expect(subject.dump).to match_fuzzy actual_dsl
149
160
  delta.migrate
150
- expect(subject.dump).to eq expected_dsl.strip_heredoc.strip.gsub(/\s*,\s*renamed_from:.*$/, '')
161
+ expect(subject.dump).to match_fuzzy expected_dsl.gsub(/\s*,\s*renamed_from:.*$/, '')
151
162
  }
152
163
 
153
164
  it {
@@ -156,4 +167,3 @@ describe 'Ridgepole::Client#diff -> migrate' do
156
167
  }
157
168
  end
158
169
  end
159
- 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 rename table' 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 "employees2", primary_key: "emp_no"#{unsigned_if_enabled}, force: :cascade do |t|
56
+ create_table "employees2", 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
 
@@ -104,14 +115,14 @@ describe 'Ridgepole::Client#diff -> migrate' do
104
115
  add_index "dept_manager", ["dept_no"], name: "dept_no", using: :btree
105
116
  add_index "dept_manager", ["emp_no"], name: "emp_no", using: :btree
106
117
 
107
- create_table "employee_clubs"#{unsigned_if_enabled}, force: :cascade do |t|
108
- t.integer "emp_no", limit: 4, null: false#{unsigned_if_enabled}
109
- t.integer "club_id", limit: 4, null: false#{unsigned_if_enabled}
118
+ create_table "employee_clubs", <%= {force: :cascade}.unshift(@unsigned).i %> do |t|
119
+ t.integer "emp_no", <%= {limit: 4, null: false}.push(@unsigned).i %>
120
+ t.integer "club_id", <%= {limit: 4, null: false}.push(@unsigned).i %>
110
121
  end
111
122
 
112
123
  add_index "employee_clubs", ["emp_no", "club_id"], name: "idx_emp_no_club_id", using: :btree
113
124
 
114
- create_table "employees2", primary_key: "emp_no"#{unsigned_if_enabled}, force: :cascade, renamed_from: 'employees' do |t|
125
+ create_table "employees2", primary_key: "emp_no", <%= {force: :cascade}.unshift(@unsigned).i %>, renamed_from: 'employees' do |t|
115
126
  t.date "birth_date", null: false
116
127
  t.string "first_name", limit: 14, null: false
117
128
  t.string "last_name", limit: 16, null: false
@@ -136,7 +147,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
136
147
  end
137
148
 
138
149
  add_index "titles", ["emp_no"], name: "emp_no", using: :btree
139
- RUBY
150
+ EOS
140
151
  }
141
152
 
142
153
  before { subject.diff(actual_dsl).migrate }
@@ -145,9 +156,9 @@ describe 'Ridgepole::Client#diff -> migrate' do
145
156
  it {
146
157
  delta = subject.diff(expected_dsl)
147
158
  expect(delta.differ?).to be_falsey
148
- expect(subject.dump).to eq actual_dsl.strip_heredoc.strip
159
+ expect(subject.dump).to match_fuzzy actual_dsl
149
160
  delta.migrate
150
- expect(subject.dump).to eq expected_dsl.strip_heredoc.strip.gsub(/, renamed_from: 'employees'/, '')
161
+ expect(subject.dump).to match_fuzzy expected_dsl.gsub(/, renamed_from: 'employees'/, '')
151
162
  }
152
163
 
153
164
  it {
@@ -156,4 +167,3 @@ describe 'Ridgepole::Client#diff -> migrate' do
156
167
  }
157
168
  end
158
169
  end
159
- end
@@ -1,8 +1,7 @@
1
- unless postgresql?
2
1
  describe 'Ridgepole::Client#diff -> migrate' do
3
2
  context 'when with ignore 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 ignore 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,23 +139,23 @@ 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, ignore_tables: [/^salaries$/], 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
 
157
156
  context 'when with ignore tables option (target and ignore)' do
158
157
  let(:current_schema) {
159
- <<-RUBY
158
+ <<-EOS
160
159
  create_table "employees", primary_key: "emp_no", force: :cascade do |t|
161
160
  t.date "birth_date", null: false
162
161
  t.string "first_name", limit: 14, null: false
@@ -173,11 +172,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
173
172
  end
174
173
 
175
174
  add_index "salaries", ["salary"], name: "emp_no", using: :btree
176
- RUBY
175
+ EOS
177
176
  }
178
177
 
179
178
  let(:dsl) {
180
- <<-RUBY
179
+ <<-EOS
181
180
  create_table "employees", primary_key: "emp_no", force: :cascade do |t|
182
181
  t.date "birth_date", null: false
183
182
  t.string "first_name", limit: 15, null: false
@@ -194,11 +193,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
194
193
  end
195
194
 
196
195
  add_index "salaries", ["emp_no"], name: "emp_no", using: :btree
197
- RUBY
196
+ EOS
198
197
  }
199
198
 
200
199
  let(:before_dsl) {
201
- <<-RUBY
200
+ <<-EOS
202
201
  create_table "employees", primary_key: "emp_no", force: :cascade do |t|
203
202
  t.date "birth_date", null: false
204
203
  t.string "first_name", limit: 14, null: false
@@ -206,11 +205,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
206
205
  t.string "gender", limit: 1, null: false
207
206
  t.date "hire_date", null: false
208
207
  end
209
- RUBY
208
+ EOS
210
209
  }
211
210
 
212
211
  let(:after_dsl) {
213
- <<-RUBY
212
+ <<-EOS
214
213
  create_table "employees", primary_key: "emp_no", force: :cascade do |t|
215
214
  t.date "birth_date", null: false
216
215
  t.string "first_name", limit: 15, null: false
@@ -218,7 +217,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
218
217
  t.string "gender", limit: 1, null: false
219
218
  t.date "hire_date", null: false
220
219
  end
221
- RUBY
220
+ EOS
222
221
  }
223
222
 
224
223
  before { subject.diff(current_schema).migrate }
@@ -227,23 +226,23 @@ describe 'Ridgepole::Client#diff -> migrate' do
227
226
  it {
228
227
  delta = subject.diff(dsl)
229
228
  expect(delta.differ?).to be_truthy
230
- expect(subject.dump).to eq before_dsl.strip_heredoc.strip
229
+ expect(subject.dump).to match_fuzzy before_dsl
231
230
  delta.migrate
232
- expect(subject.dump).to eq after_dsl.strip_heredoc.strip
231
+ expect(subject.dump).to match_fuzzy after_dsl
233
232
  }
234
233
 
235
234
  it {
236
235
  delta = Ridgepole::Client.diff(current_schema, dsl, ignore_tables: [/^salaries$/], reverse: true, enable_mysql_awesome: true)
237
236
  expect(delta.differ?).to be_truthy
238
- expect(delta.script).to eq <<-RUBY.strip_heredoc.strip
237
+ expect(delta.script).to match_fuzzy <<-EOS
239
238
  change_column("employees", "first_name", :string, {:limit=>14, :null=>false, :default=>nil, :unsigned=>false})
240
- RUBY
239
+ EOS
241
240
  }
242
241
  end
243
242
 
244
243
  context 'when with ignore tables option (target)' do
245
244
  let(:current_schema) {
246
- <<-RUBY
245
+ <<-EOS
247
246
  create_table "employees", primary_key: "emp_no", force: :cascade do |t|
248
247
  t.date "birth_date", null: false
249
248
  t.string "first_name", limit: 14, null: false
@@ -260,11 +259,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
260
259
  end
261
260
 
262
261
  add_index "salaries", ["salary"], name: "emp_no", using: :btree
263
- RUBY
262
+ EOS
264
263
  }
265
264
 
266
265
  let(:dsl) {
267
- <<-RUBY
266
+ <<-EOS
268
267
  create_table "employees", primary_key: "emp_no", force: :cascade do |t|
269
268
  t.date "birth_date", null: false
270
269
  t.string "first_name", limit: 15, null: false
@@ -281,11 +280,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
281
280
  end
282
281
 
283
282
  add_index "salaries", ["emp_no"], name: "emp_no", using: :btree
284
- RUBY
283
+ EOS
285
284
  }
286
285
 
287
286
  let(:before_dsl) {
288
- <<-RUBY
287
+ <<-EOS
289
288
  create_table "employees", primary_key: "emp_no", force: :cascade do |t|
290
289
  t.date "birth_date", null: false
291
290
  t.string "first_name", limit: 14, null: false
@@ -293,11 +292,11 @@ describe 'Ridgepole::Client#diff -> migrate' do
293
292
  t.string "gender", limit: 1, null: false
294
293
  t.date "hire_date", null: false
295
294
  end
296
- RUBY
295
+ EOS
297
296
  }
298
297
 
299
298
  let(:after_dsl) {
300
- <<-RUBY
299
+ <<-EOS
301
300
  create_table "employees", primary_key: "emp_no", force: :cascade do |t|
302
301
  t.date "birth_date", null: false
303
302
  t.string "first_name", limit: 15, null: false
@@ -305,7 +304,7 @@ describe 'Ridgepole::Client#diff -> migrate' do
305
304
  t.string "gender", limit: 1, null: false
306
305
  t.date "hire_date", null: false
307
306
  end
308
- RUBY
307
+ EOS
309
308
  }
310
309
 
311
310
  before { subject.diff(current_schema).migrate }
@@ -314,18 +313,17 @@ describe 'Ridgepole::Client#diff -> migrate' do
314
313
  it {
315
314
  delta = subject.diff(dsl)
316
315
  expect(delta.differ?).to be_truthy
317
- expect(subject.dump).to eq before_dsl.strip_heredoc.strip
316
+ expect(subject.dump).to match_fuzzy before_dsl
318
317
  delta.migrate
319
- expect(subject.dump).to eq after_dsl.strip_heredoc.strip
318
+ expect(subject.dump).to match_fuzzy after_dsl
320
319
  }
321
320
 
322
321
  it {
323
322
  delta = Ridgepole::Client.diff(current_schema, dsl, ignore_tables: [/^salaries$/], reverse: true, enable_mysql_awesome: true)
324
323
  expect(delta.differ?).to be_truthy
325
- expect(delta.script).to eq <<-RUBY.strip_heredoc.strip
324
+ expect(delta.script).to match_fuzzy <<-EOS
326
325
  change_column("employees", "first_name", :string, {:limit=>14, :null=>false, :default=>nil, :unsigned=>false})
327
- RUBY
326
+ EOS
328
327
  }
329
328
  end
330
329
  end
331
- end