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,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