ridgepole 0.0.1 → 0.1.0

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.
@@ -0,0 +1,145 @@
1
+ describe 'Ridgepole::Client#diff -> migrate' do
2
+ context 'when drop column' do
3
+ let(:actual_dsl) {
4
+ <<-RUBY
5
+ create_table "clubs", force: true do |t|
6
+ t.string "name", default: "", null: false
7
+ end
8
+
9
+ add_index "clubs", ["name"], name: "idx_name", unique: true, using: :btree
10
+
11
+ create_table "departments", primary_key: "dept_no", force: true do |t|
12
+ t.string "dept_name", limit: 40, null: false
13
+ end
14
+
15
+ add_index "departments", ["dept_name"], name: "dept_name", unique: true, using: :btree
16
+
17
+ create_table "dept_emp", id: false, force: true do |t|
18
+ t.integer "emp_no", null: false
19
+ t.string "dept_no", limit: 4, null: false
20
+ t.date "from_date", null: false
21
+ t.date "to_date", null: false
22
+ end
23
+
24
+ add_index "dept_emp", ["dept_no"], name: "dept_no", using: :btree
25
+ add_index "dept_emp", ["emp_no"], name: "emp_no", using: :btree
26
+
27
+ create_table "dept_manager", id: false, force: true do |t|
28
+ t.string "dept_no", limit: 4, null: false
29
+ t.integer "emp_no", null: false
30
+ t.date "from_date", null: false
31
+ t.date "to_date", null: false
32
+ end
33
+
34
+ add_index "dept_manager", ["dept_no"], name: "dept_no", using: :btree
35
+ add_index "dept_manager", ["emp_no"], name: "emp_no", using: :btree
36
+
37
+ create_table "employee_clubs", force: true do |t|
38
+ t.integer "emp_no", unsigned: true, null: false
39
+ t.integer "club_id", unsigned: true, null: false
40
+ end
41
+
42
+ add_index "employee_clubs", ["emp_no", "club_id"], name: "idx_emp_no_club_id", using: :btree
43
+
44
+ create_table "employees", primary_key: "emp_no", force: true do |t|
45
+ t.date "birth_date", null: false
46
+ t.string "first_name", limit: 14, null: false
47
+ t.string "last_name", limit: 16, null: false
48
+ t.string "gender", limit: 1, null: false
49
+ t.date "hire_date", null: false
50
+ end
51
+
52
+ create_table "salaries", id: false, force: true do |t|
53
+ t.integer "emp_no", null: false
54
+ t.integer "salary", null: false
55
+ t.date "from_date", null: false
56
+ t.date "to_date", null: false
57
+ end
58
+
59
+ add_index "salaries", ["emp_no"], name: "emp_no", using: :btree
60
+
61
+ create_table "titles", id: false, force: true do |t|
62
+ t.integer "emp_no", null: false
63
+ t.string "title", limit: 50, null: false
64
+ t.date "from_date", null: false
65
+ t.date "to_date"
66
+ end
67
+
68
+ add_index "titles", ["emp_no"], name: "emp_no", using: :btree
69
+ RUBY
70
+ }
71
+
72
+ let(:expected_dsl) {
73
+ <<-RUBY
74
+ create_table "clubs", force: true do |t|
75
+ t.string "name", default: "", null: false
76
+ end
77
+
78
+ add_index "clubs", ["name"], name: "idx_name", unique: true, using: :btree
79
+
80
+ create_table "departments", primary_key: "dept_no", force: true do |t|
81
+ t.string "dept_name", limit: 40, null: false
82
+ end
83
+
84
+ add_index "departments", ["dept_name"], name: "dept_name", unique: true, using: :btree
85
+
86
+ create_table "dept_emp", id: false, force: true do |t|
87
+ t.integer "emp_no", null: false
88
+ t.string "dept_no", limit: 4, null: false
89
+ end
90
+
91
+ add_index "dept_emp", ["dept_no"], name: "dept_no", using: :btree
92
+ add_index "dept_emp", ["emp_no"], name: "emp_no", using: :btree
93
+
94
+ create_table "dept_manager", id: false, force: true do |t|
95
+ t.string "dept_no", limit: 4, null: false
96
+ t.integer "emp_no", null: false
97
+ end
98
+
99
+ add_index "dept_manager", ["dept_no"], name: "dept_no", using: :btree
100
+ add_index "dept_manager", ["emp_no"], name: "emp_no", using: :btree
101
+
102
+ create_table "employee_clubs", force: true do |t|
103
+ t.integer "emp_no", unsigned: true, null: false
104
+ t.integer "club_id", unsigned: true, null: false
105
+ end
106
+
107
+ add_index "employee_clubs", ["emp_no", "club_id"], name: "idx_emp_no_club_id", using: :btree
108
+
109
+ create_table "employees", primary_key: "emp_no", force: true do |t|
110
+ t.date "birth_date", null: false
111
+ t.string "first_name", limit: 14, null: false
112
+ end
113
+
114
+ create_table "salaries", id: false, force: true do |t|
115
+ t.integer "emp_no", null: false
116
+ t.integer "salary", null: false
117
+ t.date "from_date", null: false
118
+ t.date "to_date", null: false
119
+ end
120
+
121
+ add_index "salaries", ["emp_no"], name: "emp_no", using: :btree
122
+
123
+ create_table "titles", id: false, force: true do |t|
124
+ t.integer "emp_no", null: false
125
+ t.string "title", limit: 50, null: false
126
+ t.date "from_date", null: false
127
+ t.date "to_date"
128
+ end
129
+
130
+ add_index "titles", ["emp_no"], name: "emp_no", using: :btree
131
+ RUBY
132
+ }
133
+
134
+ before { subject.diff(actual_dsl).migrate }
135
+ subject { client }
136
+
137
+ it {
138
+ delta = subject.diff(expected_dsl)
139
+ expect(delta.differ?).to be_true
140
+ expect(subject.dump).to eq actual_dsl.undent.strip
141
+ delta.migrate
142
+ expect(subject.dump).to eq expected_dsl.undent.strip
143
+ }
144
+ end
145
+ end
@@ -0,0 +1,91 @@
1
+ describe 'Ridgepole::Client#diff -> migrate' do
2
+ context 'when drop index' do
3
+ let(:dsl) {
4
+ <<-RUBY
5
+ create_table "clubs", force: true do |t|
6
+ t.string "name", default: "", null: false
7
+ end
8
+
9
+ add_index "clubs", ["name"], name: "idx_name", unique: true, using: :btree
10
+
11
+ create_table "departments", primary_key: "dept_no", force: true do |t|
12
+ t.string "dept_name", limit: 40, null: false
13
+ end
14
+
15
+ add_index "departments", ["dept_name"], name: "dept_name", unique: true, using: :btree
16
+
17
+ create_table "dept_emp", id: false, force: true do |t|
18
+ t.integer "emp_no", null: false
19
+ t.string "dept_no", limit: 4, null: false
20
+ t.date "from_date", null: false
21
+ t.date "to_date", null: false
22
+ end
23
+
24
+ add_index "dept_emp", ["dept_no"], name: "dept_no", using: :btree
25
+ add_index "dept_emp", ["emp_no"], name: "emp_no", using: :btree
26
+
27
+ create_table "dept_manager", id: false, force: true do |t|
28
+ t.string "dept_no", limit: 4, null: false
29
+ t.integer "emp_no", null: false
30
+ t.date "from_date", null: false
31
+ t.date "to_date", null: false
32
+ end
33
+
34
+ add_index "dept_manager", ["dept_no"], name: "dept_no", using: :btree
35
+ add_index "dept_manager", ["emp_no"], name: "emp_no", using: :btree
36
+
37
+ create_table "employee_clubs", force: true do |t|
38
+ t.integer "emp_no", unsigned: true, null: false
39
+ t.integer "club_id", unsigned: true, null: false
40
+ end
41
+
42
+ add_index "employee_clubs", ["emp_no", "club_id"], name: "idx_emp_no_club_id", using: :btree
43
+
44
+ create_table "employees", primary_key: "emp_no", force: true do |t|
45
+ t.date "birth_date", null: false
46
+ t.string "first_name", limit: 14, null: false
47
+ t.string "last_name", limit: 16, null: false
48
+ t.string "gender", limit: 1, null: false
49
+ t.date "hire_date", null: false
50
+ end
51
+
52
+ create_table "salaries", id: false, force: true do |t|
53
+ t.integer "emp_no", null: false
54
+ t.integer "salary", null: false
55
+ t.date "from_date", null: false
56
+ t.date "to_date", null: false
57
+ end
58
+
59
+ add_index "salaries", ["emp_no"], name: "emp_no", using: :btree
60
+
61
+ create_table "titles", id: false, force: true do |t|
62
+ t.integer "emp_no", null: false
63
+ t.string "title", limit: 50, null: false
64
+ t.date "from_date", null: false
65
+ t.date "to_date"
66
+ end
67
+
68
+ add_index "titles", ["emp_no"], name: "emp_no", using: :btree
69
+ RUBY
70
+ }
71
+
72
+ let(:actual_dsl) { dsl }
73
+
74
+ let(:expected_dsl) {
75
+ dsl.delete_add_index('clubs', ['name']).
76
+ delete_add_index('employee_clubs', ['emp_no', 'club_id']).
77
+ delete_add_index('titles', ['emp_no'])
78
+ }
79
+
80
+ before { subject.diff(actual_dsl).migrate }
81
+ subject { client }
82
+
83
+ it {
84
+ delta = subject.diff(expected_dsl)
85
+ expect(delta.differ?).to be_true
86
+ expect(subject.dump).to eq actual_dsl.undent.strip
87
+ delta.migrate
88
+ expect(subject.dump).to eq expected_dsl.undent.strip
89
+ }
90
+ end
91
+ end
@@ -0,0 +1,91 @@
1
+ describe 'Ridgepole::Client#diff -> migrate' do
2
+ context 'when drop table' do
3
+ let(:dsl) {
4
+ <<-RUBY
5
+ create_table "clubs", force: true do |t|
6
+ t.string "name", default: "", null: false
7
+ end
8
+
9
+ add_index "clubs", ["name"], name: "idx_name", unique: true, using: :btree
10
+
11
+ create_table "departments", primary_key: "dept_no", force: true do |t|
12
+ t.string "dept_name", limit: 40, null: false
13
+ end
14
+
15
+ add_index "departments", ["dept_name"], name: "dept_name", unique: true, using: :btree
16
+
17
+ create_table "dept_emp", id: false, force: true do |t|
18
+ t.integer "emp_no", null: false
19
+ t.string "dept_no", limit: 4, null: false
20
+ t.date "from_date", null: false
21
+ t.date "to_date", null: false
22
+ end
23
+
24
+ add_index "dept_emp", ["dept_no"], name: "dept_no", using: :btree
25
+ add_index "dept_emp", ["emp_no"], name: "emp_no", using: :btree
26
+
27
+ create_table "dept_manager", id: false, force: true do |t|
28
+ t.string "dept_no", limit: 4, null: false
29
+ t.integer "emp_no", null: false
30
+ t.date "from_date", null: false
31
+ t.date "to_date", null: false
32
+ end
33
+
34
+ add_index "dept_manager", ["dept_no"], name: "dept_no", using: :btree
35
+ add_index "dept_manager", ["emp_no"], name: "emp_no", using: :btree
36
+
37
+ create_table "employee_clubs", force: true do |t|
38
+ t.integer "emp_no", unsigned: true, null: false
39
+ t.integer "club_id", unsigned: true, null: false
40
+ end
41
+
42
+ add_index "employee_clubs", ["emp_no", "club_id"], name: "idx_emp_no_club_id", using: :btree
43
+
44
+ create_table "employees", primary_key: "emp_no", force: true do |t|
45
+ t.date "birth_date", null: false
46
+ t.string "first_name", limit: 14, null: false
47
+ t.string "last_name", limit: 16, null: false
48
+ t.string "gender", limit: 1, null: false
49
+ t.date "hire_date", null: false
50
+ end
51
+
52
+ create_table "salaries", id: false, force: true do |t|
53
+ t.integer "emp_no", null: false
54
+ t.integer "salary", null: false
55
+ t.date "from_date", null: false
56
+ t.date "to_date", null: false
57
+ end
58
+
59
+ add_index "salaries", ["emp_no"], name: "emp_no", using: :btree
60
+
61
+ create_table "titles", id: false, force: true do |t|
62
+ t.integer "emp_no", null: false
63
+ t.string "title", limit: 50, null: false
64
+ t.date "from_date", null: false
65
+ t.date "to_date"
66
+ end
67
+
68
+ add_index "titles", ["emp_no"], name: "emp_no", using: :btree
69
+ RUBY
70
+ }
71
+
72
+ let(:actual_dsl) { dsl }
73
+
74
+ let(:expected_dsl) {
75
+ dsl.delete_create_table('clubs')
76
+ .delete_create_table('employee_clubs')
77
+ .delete_create_table('employees')
78
+ }
79
+
80
+ before { subject.diff(actual_dsl).migrate }
81
+ subject { client }
82
+
83
+ it {
84
+ delta = subject.diff(expected_dsl)
85
+ expect(delta.differ?).to be_true
86
+ expect(subject.dump).to eq actual_dsl.undent.strip
87
+ delta.migrate
88
+ expect(subject.dump).to eq expected_dsl.undent.strip
89
+ }
90
+ end
91
+ end
@@ -0,0 +1,83 @@
1
+ describe 'Ridgepole::Client#diff -> migrate' do
2
+ context 'when database is empty' do
3
+ let(:actual_dsl) { '' }
4
+ let(:expected_dsl) {
5
+ <<-RUBY
6
+ create_table "clubs", force: true do |t|
7
+ t.string "name", default: "", null: false
8
+ end
9
+
10
+ add_index "clubs", ["name"], name: "idx_name", unique: true, using: :btree
11
+
12
+ create_table "departments", primary_key: "dept_no", force: true do |t|
13
+ t.string "dept_name", limit: 40, null: false
14
+ end
15
+
16
+ add_index "departments", ["dept_name"], name: "dept_name", unique: true, using: :btree
17
+
18
+ create_table "dept_emp", id: false, force: true do |t|
19
+ t.integer "emp_no", null: false
20
+ t.string "dept_no", limit: 4, null: false
21
+ t.date "from_date", null: false
22
+ t.date "to_date", null: false
23
+ end
24
+
25
+ add_index "dept_emp", ["dept_no"], name: "dept_no", using: :btree
26
+ add_index "dept_emp", ["emp_no"], name: "emp_no", using: :btree
27
+
28
+ create_table "dept_manager", id: false, force: true do |t|
29
+ t.string "dept_no", limit: 4, null: false
30
+ t.integer "emp_no", null: false
31
+ t.date "from_date", null: false
32
+ t.date "to_date", null: false
33
+ end
34
+
35
+ add_index "dept_manager", ["dept_no"], name: "dept_no", using: :btree
36
+ add_index "dept_manager", ["emp_no"], name: "emp_no", using: :btree
37
+
38
+ create_table "employee_clubs", force: true do |t|
39
+ t.integer "emp_no", unsigned: true, null: false
40
+ t.integer "club_id", unsigned: true, null: false
41
+ end
42
+
43
+ add_index "employee_clubs", ["emp_no", "club_id"], name: "idx_emp_no_club_id", using: :btree
44
+
45
+ create_table "employees", primary_key: "emp_no", force: true do |t|
46
+ t.date "birth_date", null: false
47
+ t.string "first_name", limit: 14, null: false
48
+ t.string "last_name", limit: 16, null: false
49
+ t.string "gender", limit: 1, null: false
50
+ t.date "hire_date", null: false
51
+ end
52
+
53
+ create_table "salaries", id: false, force: true do |t|
54
+ t.integer "emp_no", null: false
55
+ t.integer "salary", null: false
56
+ t.date "from_date", null: false
57
+ t.date "to_date", null: false
58
+ end
59
+
60
+ add_index "salaries", ["emp_no"], name: "emp_no", using: :btree
61
+
62
+ create_table "titles", id: false, force: true do |t|
63
+ t.integer "emp_no", null: false
64
+ t.string "title", limit: 50, null: false
65
+ t.date "from_date", null: false
66
+ t.date "to_date"
67
+ end
68
+
69
+ add_index "titles", ["emp_no"], name: "emp_no", using: :btree
70
+ RUBY
71
+ }
72
+
73
+ subject { client }
74
+
75
+ it {
76
+ delta = subject.diff(expected_dsl)
77
+ expect(delta.differ?).to be_true
78
+ expect(subject.dump).to eq actual_dsl.undent.strip
79
+ delta.migrate
80
+ expect(subject.dump).to eq expected_dsl.undent.strip
81
+ }
82
+ end
83
+ end
@@ -0,0 +1,157 @@
1
+ describe 'Ridgepole::Client#diff -> migrate' do
2
+ context 'when marge table' do
3
+ let(:actual_dsl) {
4
+ <<-RUBY
5
+ create_table "clubs", force: true do |t|
6
+ t.string "name", default: "", null: false
7
+ end
8
+
9
+ add_index "clubs", ["name"], name: "idx_name", unique: true, using: :btree
10
+
11
+ create_table "departments", primary_key: "dept_no", force: true do |t|
12
+ t.string "dept_name", limit: 40, null: false
13
+ end
14
+
15
+ add_index "departments", ["dept_name"], name: "dept_name", unique: true, using: :btree
16
+
17
+ create_table "dept_emp", id: false, force: true do |t|
18
+ t.integer "emp_no", null: false
19
+ t.string "dept_no", limit: 4, null: false
20
+ t.date "from_date", null: false
21
+ t.date "to_date", null: false
22
+ end
23
+
24
+ add_index "dept_emp", ["dept_no"], name: "dept_no", using: :btree
25
+ add_index "dept_emp", ["emp_no"], name: "emp_no", using: :btree
26
+
27
+ create_table "dept_manager", id: false, force: true do |t|
28
+ t.string "dept_no", limit: 4, null: false
29
+ t.integer "emp_no", null: false
30
+ t.date "from_date", null: false
31
+ t.date "to_date", null: false
32
+ end
33
+
34
+ add_index "dept_manager", ["dept_no"], name: "dept_no", using: :btree
35
+ add_index "dept_manager", ["emp_no"], name: "emp_no", using: :btree
36
+
37
+ create_table "employee_clubs", force: true do |t|
38
+ t.integer "emp_no", unsigned: true, null: false
39
+ t.integer "club_id", unsigned: true, null: false
40
+ end
41
+
42
+ add_index "employee_clubs", ["emp_no", "club_id"], name: "idx_emp_no_club_id", using: :btree
43
+
44
+ create_table "employees", primary_key: "emp_no", force: true do |t|
45
+ t.date "birth_date", null: false
46
+ t.string "first_name", limit: 14, null: false
47
+ t.string "last_name", limit: 16, null: false
48
+ t.string "gender", limit: 1, null: false
49
+ t.date "hire_date", null: false
50
+ end
51
+
52
+ create_table "salaries", id: false, force: true do |t|
53
+ t.integer "emp_no", null: false
54
+ t.integer "salary", null: false
55
+ t.date "from_date", null: false
56
+ t.date "to_date", null: false
57
+ end
58
+
59
+ add_index "salaries", ["emp_no"], name: "emp_no", using: :btree
60
+
61
+ create_table "titles", id: false, force: true do |t|
62
+ t.integer "emp_no", null: false
63
+ t.string "title", limit: 50, null: false
64
+ t.date "from_date", null: false
65
+ t.date "to_date"
66
+ end
67
+
68
+ add_index "titles", ["emp_no"], name: "emp_no", using: :btree
69
+ RUBY
70
+ }
71
+
72
+ let(:expected_dsl) {
73
+ <<-RUBY
74
+ create_table "clubs", force: true do |t|
75
+ t.string "name", default: "", null: false
76
+ end
77
+
78
+ add_index "clubs", ["name"], name: "idx_name", unique: true, using: :btree
79
+
80
+ create_table "clubs2", force: true do |t|
81
+ t.string "name2", default: "", null: false
82
+ end
83
+
84
+ create_table "departments", primary_key: "dept_no", force: true do |t|
85
+ t.string "dept_name", limit: 40, null: false
86
+ end
87
+
88
+ add_index "departments", ["dept_name"], name: "dept_name", unique: true, using: :btree
89
+
90
+ create_table "dept_emp", id: false, force: true do |t|
91
+ t.integer "emp_no", null: false
92
+ t.string "dept_no", limit: 4, null: false
93
+ t.date "from_date", null: false
94
+ t.date "to_date", null: false
95
+ end
96
+
97
+ add_index "dept_emp", ["dept_no"], name: "dept_no", using: :btree
98
+ add_index "dept_emp", ["emp_no"], name: "emp_no", using: :btree
99
+
100
+ create_table "dept_manager", id: false, force: true do |t|
101
+ t.string "dept_no", limit: 4, null: false
102
+ t.integer "emp_no", null: false
103
+ t.date "from_date", null: false
104
+ t.date "to_date", null: false
105
+ end
106
+
107
+ add_index "dept_manager", ["dept_no"], name: "dept_no", using: :btree
108
+ add_index "dept_manager", ["emp_no"], name: "emp_no", using: :btree
109
+
110
+ create_table "employee_clubs", force: true do |t|
111
+ t.integer "emp_no", unsigned: true, null: false
112
+ t.integer "club_id", unsigned: true, null: false
113
+ end
114
+
115
+ add_index "employee_clubs", ["emp_no", "club_id"], name: "idx_emp_no_club_id", using: :btree
116
+
117
+ create_table "employees", primary_key: "emp_no", force: true do |t|
118
+ t.date "birth_date", null: false
119
+ t.string "first_name", limit: 14, null: false
120
+ t.string "last_name", limit: 16, null: false
121
+ t.string "gender", limit: 1, null: false
122
+ t.date "hire_date", null: false
123
+ end
124
+
125
+ create_table "salaries", id: false, force: true do |t|
126
+ t.integer "emp_no", null: false
127
+ t.integer "salary", null: false
128
+ t.date "from_date", null: false
129
+ t.date "to_date", null: false
130
+ end
131
+
132
+ add_index "salaries", ["emp_no"], name: "emp_no", using: :btree
133
+
134
+ create_table "titles", id: false, force: true do |t|
135
+ t.integer "emp_no", null: false
136
+ t.string "title", limit: 50, null: false
137
+ t.date "from_date", null: false
138
+ t.date "to_date"
139
+ end
140
+
141
+ add_index "titles", ["emp_no"], name: "emp_no", using: :btree
142
+ RUBY
143
+ }
144
+
145
+ before { subject.diff(actual_dsl).migrate }
146
+ subject { client(merge: true) }
147
+
148
+ it {
149
+ delta = subject.diff(expected_dsl.delete_create_table('clubs'))
150
+ expect(delta.differ?).to be_true
151
+ expect(subject.dump).to eq actual_dsl.undent.strip
152
+ delta.migrate
153
+ # `clubs` table is not deleted
154
+ expect(subject.dump).to eq expected_dsl.undent.strip
155
+ }
156
+ end
157
+ end