ridgepole 0.6.6 → 0.7.0.alpha

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 (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"