ridgepole 0.6.6 → 0.7.0.alpha

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -7
  3. data/Appraisals +4 -5
  4. data/README.md +3 -0
  5. data/gemfiles/activerecord_5.0.gemfile +1 -1
  6. data/gemfiles/{activerecord_4.2.gemfile → activerecord_5.1.gemfile} +1 -2
  7. data/lib/ridgepole.rb +1 -0
  8. data/lib/ridgepole/client.rb +1 -3
  9. data/lib/ridgepole/connection_adapters.rb +11 -0
  10. data/lib/ridgepole/delta.rb +5 -0
  11. data/lib/ridgepole/diff.rb +5 -10
  12. data/lib/ridgepole/dsl_parser/context.rb +1 -4
  13. data/lib/ridgepole/dumper.rb +0 -11
  14. data/lib/ridgepole/schema_statements_ext.rb +1 -1
  15. data/lib/ridgepole/version.rb +1 -1
  16. data/ridgepole.gemspec +2 -2
  17. data/ridgepole.iml +9 -0
  18. data/spec/erb_helper.rb +25 -15
  19. data/spec/mysql/bigint_pk/bigint_pk_spec.rb +15 -15
  20. data/spec/mysql/bigint_pk/int_pk_spec.rb +45 -0
  21. data/spec/mysql/cli/config_spec.rb +7 -7
  22. data/spec/mysql/cli/ridgepole_spec.rb +20 -20
  23. data/spec/mysql/collation/collation_spec.rb +40 -41
  24. data/spec/mysql/comment/comment_spec.rb +19 -19
  25. data/spec/mysql/default_lambda/default_lambda_spec.rb +3 -3
  26. data/spec/mysql/diff/diff2_spec.rb +8 -5
  27. data/spec/mysql/diff/diff_spec.rb +8 -5
  28. data/spec/mysql/dump/dump_class_method_spec.rb +18 -68
  29. data/spec/mysql/dump/dump_some_tables_spec.rb +10 -30
  30. data/spec/mysql/dump/dump_spec.rb +21 -54
  31. data/spec/mysql/dump/dump_without_table_options_spec.rb +8 -35
  32. data/spec/mysql/fk/migrate_change_fk_spec.rb +8 -8
  33. data/spec/mysql/fk/migrate_create_fk_spec.rb +21 -35
  34. data/spec/mysql/fk/migrate_drop_fk_spec.rb +16 -30
  35. data/spec/mysql/migrate/migrate_add_column2_spec.rb +3 -5
  36. data/spec/mysql/migrate/migrate_add_column_order_spec.rb +21 -39
  37. data/spec/mysql/migrate/migrate_change_column5_spec.rb +8 -8
  38. data/spec/mysql/migrate/migrate_change_column6_spec.rb +18 -18
  39. data/spec/mysql/migrate/migrate_change_column_default_spec.rb +23 -16
  40. data/spec/mysql/migrate/migrate_change_column_spec.rb +34 -34
  41. data/spec/mysql/migrate/migrate_change_index3_spec.rb +19 -9
  42. data/spec/mysql/migrate/migrate_create_index_spec.rb +32 -32
  43. data/spec/mysql/migrate/migrate_create_table_spec.rb +0 -9
  44. data/spec/mysql/migrate/migrate_drop_index_spec.rb +32 -32
  45. data/spec/mysql/migrate/migrate_drop_table_spec.rb +30 -30
  46. data/spec/mysql/migrate/migrate_execute_spec.rb +68 -81
  47. data/spec/mysql/migrate/migrate_merge_mode_spec.rb +1 -3
  48. data/spec/mysql/migrate/migrate_noop_spec.rb +34 -61
  49. data/spec/mysql/migrate/migrate_rename_table_spec.rb +3 -24
  50. data/spec/mysql/migrate/migrate_same_spec.rb +12 -45
  51. data/spec/mysql/migrate/migrate_with_ignore_tables_spec.rb +6 -6
  52. data/spec/mysql/migrate/migrate_with_tables_spec.rb +2 -2
  53. data/spec/mysql/migrate/migrate_with_verbose_log_spec.rb +1 -6
  54. data/spec/mysql/migrate_/migrate_drop_index_with_alter_spec.rb +10 -10
  55. data/spec/mysql/text_blob_types/text_blob_types_spec.rb +3 -3
  56. data/spec/mysql/~default_name_fk/migrate_change_fk_spec.rb +6 -6
  57. data/spec/mysql/~default_name_fk/migrate_create_fk_spec.rb +10 -10
  58. data/spec/mysql/~default_name_fk/migrate_drop_fk_spec.rb +6 -6
  59. data/spec/postgresql/diff/diff_spec.rb +6 -0
  60. data/spec/postgresql/dump/dump_spec.rb +9 -33
  61. data/spec/postgresql/migrate/migrate_add_expression_index_spec.rb +3 -3
  62. data/spec/postgresql/migrate/migrate_bigint_spec.rb +10 -26
  63. data/spec/postgresql/migrate/migrate_create_table_spec.rb +0 -9
  64. data/spec/postgresql/migrate/migrate_create_table_with_default_proc_spec.rb +1 -1
  65. data/spec/postgresql/migrate/migrate_drop_column_with_index_spec.rb +2 -2
  66. data/spec/postgresql/migrate/migrate_drop_expression_index_spec.rb +7 -7
  67. data/spec/postgresql/migrate/migrate_drop_index_spec.rb +4 -4
  68. data/spec/postgresql/migrate/migrate_drop_table_spec.rb +3 -3
  69. data/spec/postgresql/migrate/migrate_ext_cols_spec.rb +0 -3
  70. data/spec/postgresql/migrate/migrate_same_spec.rb +9 -33
  71. data/spec/spec_condition.rb +15 -6
  72. data/spec/spec_helper.rb +2 -15
  73. metadata +14 -10
@@ -1,4 +1,4 @@
1
- describe 'Ridgepole::Client (use default:lambda)', condition: [:activerecord_5] do
1
+ describe 'Ridgepole::Client (use default:lambda)' do
2
2
  context 'when create table with default:lambda' do
3
3
  subject { client }
4
4
 
@@ -62,9 +62,9 @@ describe 'Ridgepole::Client (use default:lambda)', condition: [:activerecord_5]
62
62
  expect(delta.differ?).to be_truthy
63
63
  delta.migrate
64
64
 
65
- expect(subject.dump).to match_fuzzy <<-EOS
65
+ expect(subject.dump).to match_fuzzy erbh(<<-EOS)
66
66
  create_table "foos", force: :cascade do |t|
67
- t.datetime "bar", default: '1970-01-01 00:00:00', null: false
67
+ t.datetime "bar", default: <%= cond('5.1', '"1970-01-01 00:00:00"', "'1970-01-01 00:00:00'") %>, null: false
68
68
  end
69
69
  EOS
70
70
  end
@@ -166,14 +166,17 @@ describe 'Ridgepole::Client.diff' do
166
166
 
167
167
  subject { Ridgepole::Client }
168
168
 
169
+ # XXX: for AR 5.1
170
+ before { client }
171
+
169
172
  it {
170
- delta = subject.diff(actual_dsl, expected_dsl, enable_mysql_unsigned: true)
173
+ delta = subject.diff(actual_dsl, expected_dsl)
171
174
  expect(delta.differ?).to be_truthy
172
- expect(delta.script).to match_fuzzy <<-EOS
173
- change_column("employee_clubs", "club_id", :integer, {:unsigned=>false, :null=>true, :default=>nil})
175
+ expect(delta.script).to match_fuzzy erbh(<<-EOS)
176
+ change_column("employee_clubs", "club_id", :integer, <%= {:unsigned=>false, :null=>true, :default=>nil} + cond(5.1, comment: nil) %>)
174
177
 
175
- change_column("employees", "last_name", :string, {:limit=>20, :default=>"XXX"})
176
- change_column("employees", "gender", :string, {:limit=>2, :null=>false, :default=>nil})
178
+ change_column("employees", "last_name", :string, <%= {:limit=>20, :default=>"XXX"} + cond(5.1, comment: nil) %>)
179
+ change_column("employees", "gender", :string, <%= {:limit=>2, :null=>false, :default=>nil} + cond(5.1, comment: nil) %>)
177
180
  EOS
178
181
  }
179
182
 
@@ -140,14 +140,17 @@ describe 'Ridgepole::Client.diff' do
140
140
 
141
141
  subject { Ridgepole::Client }
142
142
 
143
+ # XXX: for AR 5.1
144
+ before { client }
145
+
143
146
  it {
144
- delta = subject.diff(actual_dsl, expected_dsl, enable_mysql_unsigned: true)
147
+ delta = subject.diff(actual_dsl, expected_dsl)
145
148
  expect(delta.differ?).to be_truthy
146
- expect(delta.script).to match_fuzzy <<-EOS
147
- change_column("employee_clubs", "club_id", :integer, {:unsigned=>false, :null=>true, :default=>nil})
149
+ expect(delta.script).to match_fuzzy erbh(<<-EOS)
150
+ change_column("employee_clubs", "club_id", :integer, <%= {:unsigned=>false, :null=>true, :default=>nil} + cond(5.1, comment: nil) %>)
148
151
 
149
- change_column("employees", "last_name", :string, {:limit=>20, :default=>"XXX"})
150
- change_column("employees", "gender", :string, {:limit=>2, :null=>false, :default=>nil})
152
+ change_column("employees", "last_name", :string, <%= {:limit=>20, :default=>"XXX"} + cond(5.1, comment: nil) %>)
153
+ change_column("employees", "gender", :string, <%= {:limit=>2, :null=>false, :default=>nil} + cond(5.1, comment: nil) %>)
151
154
  EOS
152
155
  }
153
156
  end
@@ -3,72 +3,22 @@ describe 'Ridgepole::Client.dump' do
3
3
  before { restore_tables }
4
4
  subject { Ridgepole::Client }
5
5
 
6
- let(:options) {
7
- opts = {}
8
-
9
- if condition(:mysql_awesome_enabled)
10
- opts.merge!(
11
- enable_mysql_awesome: true,
12
- dump_without_table_options: true
13
- )
14
- elsif condition(:activerecord_5)
15
- opts.merge!(
16
- dump_without_table_options: true
17
- )
18
- end
19
-
20
- opts
21
- }
22
-
23
- let(:template_variables) {
24
- opts = {
25
- departments_ext: {},
26
- employees_ext: {},
27
- unsigned: {},
28
- dept_manager_pk: {primary_key: ["emp_no", "dept_no"]},
29
- dept_emp_pk: {primary_key: ["emp_no", "dept_no"]},
30
- salaries_pk: {primary_key: ["emp_no", "from_date"]},
31
- titles_pk: {primary_key: ["emp_no", "title", "from_date"]},
32
- }
33
-
34
- if condition(:mysql_awesome_enabled, :activerecord_5)
35
- {limit: 4} >> opts[:employees_ext] if condition(:mysql_awesome_enabled)
36
- {id: :integer} >> opts[:employees_ext]
37
-
38
- opts.merge!(
39
- departments_ext: {id: :string, limit: 4},
40
- unsigned: {unsigned: true}
41
- )
42
- end
43
-
44
- if condition(:activerecord_4)
45
- opts.merge!(
46
- dept_manager_pk: {id: false},
47
- dept_emp_pk: {id: false},
48
- salaries_pk: {id: false},
49
- titles_pk: {id: false}
50
- )
51
- end
52
-
53
- opts
54
- }
55
-
56
6
  it {
57
- expect(subject.dump(conn_spec, options)).to match_fuzzy erbh(<<-EOS, template_variables)
58
- create_table "clubs", <%= i @unsigned + {force: :cascade} %> do |t|
59
- t.string "name", <%= i limit(255) + {default: "", null: false} %>
7
+ expect(subject.dump(conn_spec, dump_without_table_options: true)).to match_fuzzy erbh(<<-EOS)
8
+ create_table "clubs", <%= i cond('5.1.', id: :integer) %>, unsigned: true, force: :cascade do |t|
9
+ t.string "name", default: "", null: false
60
10
  end
61
11
 
62
12
  <%= add_index "clubs", ["name"], name: "idx_name", unique: true, using: :btree %>
63
13
 
64
- create_table "departments", primary_key: "dept_no", <%= i @departments_ext + {force: :cascade} %> do |t|
14
+ create_table "departments", primary_key: "dept_no", id: :string, limit: 4, force: :cascade do |t|
65
15
  t.string "dept_name", limit: 40, null: false
66
16
  end
67
17
 
68
- <%= add_index "departments", ["dept_name"], name: "dept_name", unique: true, using: :btree %>
18
+ <%= add_index "departments", ["dept_name"], {name: "dept_name", unique: true} + cond('5.0', using: :btree) %>
69
19
 
70
- create_table "dept_emp", <%= i @dept_emp_pk %>, force: :cascade do |t|
71
- t.integer "emp_no", <%= i limit(4) + {null: false} %>
20
+ create_table "dept_emp", primary_key: ["emp_no", "dept_no"], force: :cascade do |t|
21
+ t.integer "emp_no", null: false
72
22
  t.string "dept_no", limit: 4, null: false
73
23
  t.date "from_date", null: false
74
24
  t.date "to_date", null: false
@@ -77,9 +27,9 @@ describe 'Ridgepole::Client.dump' do
77
27
  <%= add_index "dept_emp", ["dept_no"], name: "dept_no", using: :btree %>
78
28
  <%= add_index "dept_emp", ["emp_no"], name: "emp_no", using: :btree %>
79
29
 
80
- create_table "dept_manager", <%= i @dept_manager_pk %>, force: :cascade do |t|
30
+ create_table "dept_manager", primary_key: ["emp_no", "dept_no"], force: :cascade do |t|
81
31
  t.string "dept_no", limit: 4, null: false
82
- t.integer "emp_no", <%= i limit(4) + {null: false} %>
32
+ t.integer "emp_no", null: false
83
33
  t.date "from_date", null: false
84
34
  t.date "to_date", null: false
85
35
  end
@@ -87,14 +37,14 @@ describe 'Ridgepole::Client.dump' do
87
37
  <%= add_index "dept_manager", ["dept_no"], name: "dept_no", using: :btree %>
88
38
  <%= add_index "dept_manager", ["emp_no"], name: "emp_no", using: :btree %>
89
39
 
90
- create_table "employee_clubs", <%= i @unsigned + {force: :cascade} %> do |t|
91
- t.integer "emp_no", <%= i limit(4) + {null: false} + @unsigned %>
92
- t.integer "club_id", <%= i limit(4) + {null: false} + @unsigned %>
40
+ create_table "employee_clubs", <%= i cond('5.1.', id: :integer) %>, unsigned: true, force: :cascade do |t|
41
+ t.integer "emp_no", null: false, unsigned: true
42
+ t.integer "club_id", null: false, unsigned: true
93
43
  end
94
44
 
95
45
  <%= add_index "employee_clubs", ["emp_no", "club_id"], name: "idx_emp_no_club_id", using: :btree %>
96
46
 
97
- create_table "employees", primary_key: "emp_no", <%= i @employees_ext + {force: :cascade} %> do |t|
47
+ create_table "employees", primary_key: "emp_no", id: :integer, <%= i cond('5.1.', default: nil) %>, force: :cascade do |t|
98
48
  t.date "birth_date", null: false
99
49
  t.string "first_name", limit: 14, null: false
100
50
  t.string "last_name", limit: 16, null: false
@@ -102,17 +52,17 @@ describe 'Ridgepole::Client.dump' do
102
52
  t.date "hire_date", null: false
103
53
  end
104
54
 
105
- create_table "salaries", <%= i @salaries_pk %>, force: :cascade do |t|
106
- t.integer "emp_no", <%= i limit(4) + {null: false} %>
107
- t.integer "salary", <%= i limit(4) + {null: false} %>
55
+ create_table "salaries", primary_key: ["emp_no", "from_date"], force: :cascade do |t|
56
+ t.integer "emp_no", null: false
57
+ t.integer "salary", null: false
108
58
  t.date "from_date", null: false
109
59
  t.date "to_date", null: false
110
60
  end
111
61
 
112
62
  <%= add_index "salaries", ["emp_no"], name: "emp_no", using: :btree %>
113
63
 
114
- create_table "titles", <%= i @titles_pk %>, force: :cascade do |t|
115
- t.integer "emp_no", <%= i limit(4) + {null: false} %>
64
+ create_table "titles", primary_key: ["emp_no", "title", "from_date"], force: :cascade do |t|
65
+ t.integer "emp_no", null: false
116
66
  t.string "title", limit: 50, null: false
117
67
  t.date "from_date", null: false
118
68
  t.date "to_date"
@@ -1,31 +1,11 @@
1
1
  describe 'Ridgepole::Client#dump' do
2
- let(:template_variables) {
3
- opts = {
4
- employees_ext: {},
5
- salaries_pk: {primary_key: ["emp_no", "from_date"]},
6
- }
7
-
8
- if condition(:mysql_awesome_enabled, :activerecord_5)
9
- {limit: 4} >> opts[:employees_ext] if condition(:mysql_awesome_enabled)
10
- {id: :integer} >> opts[:employees_ext]
11
- end
12
-
13
- if condition(:activerecord_4)
14
- opts.merge!(
15
- salaries_pk: {id: false}
16
- )
17
- end
18
-
19
- opts
20
- }
21
-
22
2
  context 'when there is a tables (dump some tables)' do
23
3
  before { restore_tables }
24
4
  subject { client(tables: ['employees', 'salaries']) }
25
5
 
26
6
  it {
27
- expect(subject.dump).to match_fuzzy erbh(<<-EOS, template_variables)
28
- create_table "employees", primary_key: "emp_no", <%= i @employees_ext + {force: :cascade} %> do |t|
7
+ expect(subject.dump).to match_fuzzy erbh(<<-EOS)
8
+ create_table "employees", primary_key: "emp_no", id: :integer, <%= i cond('5.1', default: nil) %>, force: :cascade do |t|
29
9
  t.date "birth_date", null: false
30
10
  t.string "first_name", limit: 14, null: false
31
11
  t.string "last_name", limit: 16, null: false
@@ -33,9 +13,9 @@ describe 'Ridgepole::Client#dump' do
33
13
  t.date "hire_date", null: false
34
14
  end
35
15
 
36
- create_table "salaries", <%= i @salaries_pk %>, force: :cascade do |t|
37
- t.integer "emp_no", <%= i limit(4) + {null: false} %>
38
- t.integer "salary", <%= i limit(4) + {null: false} %>
16
+ create_table "salaries", primary_key: ["emp_no", "from_date"], force: :cascade do |t|
17
+ t.integer "emp_no", null: false
18
+ t.integer "salary", null: false
39
19
  t.date "from_date", null: false
40
20
  t.date "to_date", null: false
41
21
  end
@@ -59,8 +39,8 @@ describe 'Ridgepole::Client#dump' do
59
39
  }
60
40
 
61
41
  it {
62
- expect(subject.dump).to match_fuzzy erbh(<<-EOS, template_variables)
63
- create_table "employees", primary_key: "emp_no", <%= i @employees_ext + {force: :cascade} %> do |t|
42
+ expect(subject.dump).to match_fuzzy erbh(<<-EOS)
43
+ create_table "employees", primary_key: "emp_no", id: :integer, <%= i cond('5.1', default: nil) %>, force: :cascade do |t|
64
44
  t.date "birth_date", null: false
65
45
  t.string "first_name", limit: 14, null: false
66
46
  t.string "last_name", limit: 16, null: false
@@ -68,9 +48,9 @@ describe 'Ridgepole::Client#dump' do
68
48
  t.date "hire_date", null: false
69
49
  end
70
50
 
71
- create_table "salaries", <%= i @salaries_pk %>, force: :cascade do |t|
72
- t.integer "emp_no", <%= i limit(4) + {null: false} %>
73
- t.integer "salary", <%= i limit(4) + {null: false} %>
51
+ create_table "salaries", primary_key: ["emp_no", "from_date"], force: :cascade do |t|
52
+ t.integer "emp_no", null: false
53
+ t.integer "salary", null: false
74
54
  t.date "from_date", null: false
75
55
  t.date "to_date", null: false
76
56
  end
@@ -3,81 +3,48 @@ describe 'Ridgepole::Client#dump' do
3
3
  before { restore_tables }
4
4
  subject { client }
5
5
 
6
- let(:template_variables) {
7
- opts = {
8
- departments_ext: {},
9
- employees_ext: {},
10
- unsigned: {},
11
- dept_manager_pk: {primary_key: ["emp_no", "dept_no"]},
12
- dept_emp_pk: {primary_key: ["emp_no", "dept_no"]},
13
- salaries_pk: {primary_key: ["emp_no", "from_date"]},
14
- titles_pk: {primary_key: ["emp_no", "title", "from_date"]},
15
- }
16
-
17
- if condition(:mysql_awesome_enabled, :activerecord_5)
18
- opts[:employees_ext].unshift(limit: 4) if condition(:mysql_awesome_enabled)
19
- opts[:employees_ext].unshift(id: :integer)
20
-
21
- opts.merge!(
22
- departments_ext: {id: :string, limit: 4},
23
- unsigned: {unsigned: true}
24
- )
25
- end
26
-
27
- if condition(:activerecord_4)
28
- opts.merge!(
29
- dept_manager_pk: {id: false},
30
- dept_emp_pk: {id: false},
31
- salaries_pk: {id: false},
32
- titles_pk: {id: false}
33
- )
34
- end
35
-
36
- opts
37
- }
38
-
39
6
  it {
40
- expect(subject.dump).to match_fuzzy erbh(<<-EOS, template_variables)
41
- create_table "clubs", <%= i @unsigned + {force: :cascade} %> do |t|
42
- t.string "name", <%= i limit(255) + {default: "", null: false} %>
7
+ expect(subject.dump).to match_fuzzy erbh(<<-EOS)
8
+ create_table "clubs", <%= i cond('5.1', id: :integer) %>, unsigned: true, force: :cascade do |t|
9
+ t.string "name", default: "", null: false
43
10
  end
44
11
 
45
- <%= add_index "clubs", ["name"], name: "idx_name", unique: true, using: :btree %>
12
+ <%= add_index "clubs", ["name"], {name: "idx_name", unique: true} + cond('5.0', using: :btree) %>
46
13
 
47
- create_table "departments", primary_key: "dept_no", <%= i @departments_ext + {force: :cascade} %> do |t|
14
+ create_table "departments", primary_key: "dept_no", id: :string, limit: 4, force: :cascade do |t|
48
15
  t.string "dept_name", limit: 40, null: false
49
16
  end
50
17
 
51
- <%= add_index "departments", ["dept_name"], name: "dept_name", unique: true, using: :btree %>
18
+ <%= add_index "departments", ["dept_name"], {name: "dept_name", unique: true} + cond('5.0', using: :btree) %>
52
19
 
53
- create_table "dept_emp", <%= i @dept_emp_pk %>, force: :cascade do |t|
54
- t.integer "emp_no", <%= i limit(4) + {null: false} %>
20
+ create_table "dept_emp", primary_key: ["emp_no", "dept_no"], force: :cascade do |t|
21
+ t.integer "emp_no", null: false
55
22
  t.string "dept_no", limit: 4, null: false
56
23
  t.date "from_date", null: false
57
24
  t.date "to_date", null: false
58
25
  end
59
26
 
60
- <%= add_index "dept_emp", ["dept_no"], name: "dept_no", using: :btree %>
27
+ <%= add_index "dept_emp", ["dept_no"], {name: "dept_no"} + cond('5.0', using: :btree) %>
61
28
  <%= add_index "dept_emp", ["emp_no"], name: "emp_no", using: :btree %>
62
29
 
63
- create_table "dept_manager", <%= i @dept_manager_pk %>, force: :cascade do |t|
30
+ create_table "dept_manager", primary_key: ["emp_no", "dept_no"], force: :cascade do |t|
64
31
  t.string "dept_no", limit: 4, null: false
65
- t.integer "emp_no", <%= i limit(4) + {null: false} %>
32
+ t.integer "emp_no", null: false
66
33
  t.date "from_date", null: false
67
34
  t.date "to_date", null: false
68
35
  end
69
36
 
70
- <%= add_index "dept_manager", ["dept_no"], name: "dept_no", using: :btree %>
37
+ <%= add_index "dept_manager", ["dept_no"], {name: "dept_no"} + cond('5.0', using: :btree) %>
71
38
  <%= add_index "dept_manager", ["emp_no"], name: "emp_no", using: :btree %>
72
39
 
73
- create_table "employee_clubs", <%= i @unsigned + {force: :cascade} %> do |t|
74
- t.integer "emp_no", <%= i limit(4) + {null: false} + @unsigned %>
75
- t.integer "club_id", <%= i limit(4) + {null: false} + @unsigned %>
40
+ create_table "employee_clubs", <%= i cond('5.1', id: :integer) %>, unsigned: true, force: :cascade do |t|
41
+ t.integer "emp_no", null: false, unsigned: true
42
+ t.integer "club_id", null: false, unsigned: true
76
43
  end
77
44
 
78
45
  <%= add_index "employee_clubs", ["emp_no", "club_id"], name: "idx_emp_no_club_id", using: :btree %>
79
46
 
80
- create_table "employees", primary_key: "emp_no", <%= i @employees_ext + {force: :cascade} %> do |t|
47
+ create_table "employees", primary_key: "emp_no", id: :integer, <%= i cond('5.1', default: nil) %>, force: :cascade do |t|
81
48
  t.date "birth_date", null: false
82
49
  t.string "first_name", limit: 14, null: false
83
50
  t.string "last_name", limit: 16, null: false
@@ -85,17 +52,17 @@ describe 'Ridgepole::Client#dump' do
85
52
  t.date "hire_date", null: false
86
53
  end
87
54
 
88
- create_table "salaries", <%= i @salaries_pk %>, force: :cascade do |t|
89
- t.integer "emp_no", <%= i limit(4) + {null: false} %>
90
- t.integer "salary", <%= i limit(4) + {null: false} %>
55
+ create_table "salaries", primary_key: ["emp_no", "from_date"], force: :cascade do |t|
56
+ t.integer "emp_no", null: false
57
+ t.integer "salary", null: false
91
58
  t.date "from_date", null: false
92
59
  t.date "to_date", null: false
93
60
  end
94
61
 
95
62
  <%= add_index "salaries", ["emp_no"], name: "emp_no", using: :btree %>
96
63
 
97
- create_table "titles", <%= i @titles_pk %>, force: :cascade do |t|
98
- t.integer "emp_no", <%= i limit(4) + {null: false} %>
64
+ create_table "titles", primary_key: ["emp_no", "title", "from_date"], force: :cascade do |t|
65
+ t.integer "emp_no", null: false
99
66
  t.string "title", limit: 50, null: false
100
67
  t.date "from_date", null: false
101
68
  t.date "to_date"
@@ -1,23 +1,9 @@
1
- describe 'Ridgepole::Client#dump', condition: [:mysql_awesome_enabled, :activerecord_5] do
2
- let(:template_variables) {
3
- opts = {
4
- table_comment: {comment: '"london" bridge "is" falling "down"'},
5
- }
6
-
7
- if condition(:activerecord_4)
8
- opts.merge!(
9
- table_comment: {}
10
- )
11
- end
12
-
13
- opts
14
- }
15
-
1
+ describe 'Ridgepole::Client#dump' do
16
2
  let(:actual_dsl) {
17
- erbh(<<-'EOS', template_variables)
3
+ erbh(<<-'EOS')
18
4
  create_table "books", unsigned: true, force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='\"london\" bridge \"is\" falling \"down\"'" do |t|
19
- t.string "title", <%= i limit(255) + {null: false} %>
20
- t.integer "author_id", <%= i limit(4) + {null: false} %>
5
+ t.string "title", null: false
6
+ t.integer "author_id", null: false
21
7
  t.datetime "created_at"
22
8
  t.datetime "updated_at"
23
9
  end
@@ -26,10 +12,10 @@ describe 'Ridgepole::Client#dump', condition: [:mysql_awesome_enabled, :activere
26
12
 
27
13
  context 'when without table options' do
28
14
  let(:expected_dsl) {
29
- erbh(<<-EOS, template_variables)
30
- create_table "books", <%= i({unsigned: true, force: :cascade} + @table_comment) %> do |t|
31
- t.string "title", <%= i limit(255) + {null: false} %>
32
- t.integer "author_id", <%= i limit(4) + {null: false} %>
15
+ erbh(<<-EOS)
16
+ create_table "books", <%= i cond('5.1', id: :bigint) %>, unsigned: true, force: :cascade, comment: "\\"london\\" bridge \\"is\\" falling \\"down\\"" do |t|
17
+ t.string "title", null: false
18
+ t.integer "author_id", null: false
33
19
  t.datetime "created_at"
34
20
  t.datetime "updated_at"
35
21
  end
@@ -43,17 +29,4 @@ describe 'Ridgepole::Client#dump', condition: [:mysql_awesome_enabled, :activere
43
29
  expect(subject.dump).to match_fuzzy expected_dsl
44
30
  }
45
31
  end
46
-
47
- context 'when with table options' do
48
- before { subject.diff(actual_dsl).migrate }
49
- subject { client(dump_without_table_options: false) }
50
-
51
- it {
52
- if condition(:activerecord_5)
53
- skip
54
- else
55
- expect(subject.dump).to match_fuzzy actual_dsl
56
- end
57
- }
58
- end
59
32
  end
@@ -2,14 +2,14 @@ describe 'Ridgepole::Client#diff -> migrate' do
2
2
  context 'when change fk' do
3
3
  let(:actual_dsl) {
4
4
  erbh(<<-EOS)
5
- create_table "parent", force: :cascade do |t|
5
+ create_table "parent", <%= i cond('5.1', id: :integer) %>, force: :cascade do |t|
6
6
  end
7
7
 
8
8
  create_table "child", force: :cascade do |t|
9
9
  t.integer "parent_id"
10
10
  end
11
11
 
12
- <%= add_index "child", ["parent_id"], name: "par_id", using: :btree %>
12
+ <%= add_index "child", ["parent_id"], {name: "par_id"} + cond('5.0', using: :btree) %>
13
13
 
14
14
  add_foreign_key "child", "parent", name: "child_ibfk_1", on_delete: :cascade
15
15
  EOS
@@ -18,12 +18,12 @@ add_foreign_key "child", "parent", name: "child_ibfk_1", on_delete: :cascade
18
18
  let(:sorted_actual_dsl) {
19
19
  erbh(<<-EOS)
20
20
  create_table "child", force: :cascade do |t|
21
- t.integer "parent_id" <%= condition(:activerecord_4) ? ', limit: 4' : '' %>
21
+ t.integer "parent_id"
22
22
  end
23
23
 
24
- <%= add_index "child", ["parent_id"], name: "par_id", using: :btree %>
24
+ <%= add_index "child", ["parent_id"], {name: "par_id"} + cond('5.0', using: :btree) %>
25
25
 
26
- create_table "parent", force: :cascade do |t|
26
+ create_table "parent", <%= i cond('5.1', id: :integer) %>, force: :cascade do |t|
27
27
  end
28
28
 
29
29
  add_foreign_key "child", "parent", name: "child_ibfk_1", on_delete: :cascade
@@ -33,12 +33,12 @@ add_foreign_key "child", "parent", name: "child_ibfk_1", on_delete: :cascade
33
33
  let(:expected_dsl) {
34
34
  erbh(<<-EOS)
35
35
  create_table "child", force: :cascade do |t|
36
- t.integer "parent_id" <%= condition(:activerecord_4) ? ', limit: 4' : '' %>
36
+ t.integer "parent_id"
37
37
  end
38
38
 
39
- <%= add_index "child", ["parent_id"], name: "par_id", using: :btree %>
39
+ <%= add_index "child", ["parent_id"], {name: "par_id"} + cond('5.0', using: :btree) %>
40
40
 
41
- create_table "parent", force: :cascade do |t|
41
+ create_table "parent", <%= i cond('5.1', id: :integer) %>, force: :cascade do |t|
42
42
  end
43
43
 
44
44
  add_foreign_key "child", "parent", name: "child_ibfk_1"