1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
|
CREATE DATABASE IF NOT EXISTS CMSCHEDULER;
USE CMSCHEDULER;
CREATE TABLE IF NOT EXISTS DOMAINS (
domain VARCHAR(256) NOT NULL,
CONSTRAINT PK_DOMAINS PRIMARY KEY (domain)
) ENGINE=INNODB;
CREATE UNIQUE INDEX DOMAIN_UNIQUE ON DOMAINS (domain ASC);
-- -----------------------------------------------------
-- Table SCHEDULES
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS SCHEDULES (
id INT NOT NULL AUTO_INCREMENT,
domain VARCHAR(256) NOT NULL,
schedule_id VARCHAR(256) NULL,
schedule_name VARCHAR(256) NULL,
user_id VARCHAR(45) NULL,
status VARCHAR(45) NOT NULL,
create_date_time BIGINT NULL,
schedule_info MEDIUMTEXT NOT NULL,
schedule MEDIUMTEXT NULL,
optimizer_status VARCHAR(45) NULL,
optimizer_message MEDIUMTEXT NULL,
optimizer_date_time BIGINT NULL,
optimizer_return_date_time BIGINT NULL,
optimizer_attempts_to_schedule INT NOT NULL DEFAULT 0,
optimizer_transaction_id VARCHAR(128) NULL,
delete_date_time BIGINT NULL,
CONSTRAINT PK_SCHEDULES PRIMARY KEY (id),
CONSTRAINT FK_SCHEDULES_DOMAIN FOREIGN KEY (domain)
REFERENCES DOMAINS (domain)
ON DELETE NO ACTION ON UPDATE CASCADE
) ENGINE=INNODB;
CREATE UNIQUE INDEX SCHEDULE_KEY ON SCHEDULES (domain ASC, schedule_id ASC);
CREATE UNIQUE INDEX OPTIMIZER_TRANSACTION_ID_UNIQUE ON SCHEDULES (optimizer_transaction_id ASC);
-- -----------------------------------------------------
-- Table SCHEDULE_EVENTS
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS SCHEDULE_EVENTS (
id INT(11) NOT NULL AUTO_INCREMENT,
schedules_id INT(11) NOT NULL,
event_time BIGINT(20) NOT NULL,
reminder_time BIGINT(20) NOT NULL,
domain VARCHAR(45) NULL DEFAULT NULL,
event_text MEDIUMTEXT NULL DEFAULT NULL,
status VARCHAR(45) NULL DEFAULT NULL,
CONSTRAINT PK_SCHEDULE_EVENTS PRIMARY KEY (id),
CONSTRAINT FK_SCHEDULE_EVENTS_SCHEDULES FOREIGN KEY (schedules_id)
REFERENCES SCHEDULES (id)
ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=INNODB;
CREATE INDEX FK_SCHEDULE_EVENTS_SCHEDULES_IDX ON SCHEDULE_EVENTS (schedules_id ASC);
CREATE INDEX SEQ_SVENTS ON SCHEDULE_EVENTS (reminder_time ASC);
-- -----------------------------------------------------
-- Table DOMAIN_DATA
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS DOMAIN_DATA (
id INT NOT NULL AUTO_INCREMENT,
schedules_id INT NOT NULL,
name VARCHAR(128) NULL,
value MEDIUMTEXT NULL,
CONSTRAINT PK_DOMAIN_DATA PRIMARY KEY (id),
CONSTRAINT FK_DOMAIN_DATA_SCHEDULES FOREIGN KEY (schedules_id)
REFERENCES SCHEDULES (id)
ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=INNODB;
CREATE UNIQUE INDEX ID_UNIQUE ON DOMAIN_DATA (id ASC);
CREATE INDEX FK_DOMAIN_DATA_SCHEDULES_IDX ON DOMAIN_DATA (schedules_id ASC);
-- -----------------------------------------------------
-- Table APPROVAL_TYPES
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS APPROVAL_TYPES (
id INT NOT NULL AUTO_INCREMENT,
domain VARCHAR(256) NOT NULL,
approval_type VARCHAR(45) NOT NULL,
approval_count INT NOT NULL DEFAULT 1,
CONSTRAINT PK_APPROVAL_TYPES PRIMARY KEY (id),
CONSTRAINT FK_APPROVAL_TYPES_DOMAIN FOREIGN KEY (domain)
REFERENCES DOMAINS (domain)
ON DELETE NO ACTION ON UPDATE CASCADE
) ENGINE=INNODB;
CREATE INDEX FK_DOMAIN_IDX ON APPROVAL_TYPES (domain ASC);
-- -----------------------------------------------------
-- Table SCHEDULE_APPROVALS
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS SCHEDULE_APPROVALS (
id INT NOT NULL AUTO_INCREMENT,
schedules_id INT NOT NULL,
user_id VARCHAR(45) NOT NULL,
approval_type_id INT NOT NULL,
status VARCHAR(45) NOT NULL DEFAULT 'Pending Approval',
approval_date_time BIGINT NULL,
CONSTRAINT PK_SCHEDULE_APPROVALS PRIMARY KEY (id),
CONSTRAINT FK_SCHEDULE_APPROVALS_SCHEDULES FOREIGN KEY (schedules_id)
REFERENCES SCHEDULES (id)
ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT FK_SCHEDULE_APPROVALS_APPROVAL_TYPES FOREIGN KEY (approval_type_id)
REFERENCES APPROVAL_TYPES (id)
ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=INNODB;
CREATE INDEX FK_SCHEDULE_APPROVALS_SCHEDULES_IDX ON SCHEDULE_APPROVALS (schedules_id ASC);
CREATE INDEX FK_APPROVAL_TYPES_IDX ON SCHEDULE_APPROVALS (approval_type_id ASC);
-- -----------------------------------------------------
-- Table CHANGE_MANAGEMENT_GROUPS
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS CHANGE_MANAGEMENT_GROUPS (
id INT NOT NULL AUTO_INCREMENT,
group_id VARCHAR(45) NULL,
schedules_id INT NULL,
start_time BIGINT NULL,
finish_time BIGINT NULL,
last_instance_start_time BIGINT NULL,
normal_duration_in_secs INT NULL,
additional_duration_in_secs INT NULL,
concurrency_limit INT NULL,
policy_id VARCHAR(256) NULL,
CONSTRAINT PK_CHANGE_MANAGEMENT_GROUPS PRIMARY KEY (id),
CONSTRAINT FK_CHANGE_MANAGEMENT_GROUPS_SCHEDULES FOREIGN KEY (schedules_id)
REFERENCES SCHEDULES (id)
ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=INNODB;
CREATE INDEX FK_SCHEDULES_IDX ON CHANGE_MANAGEMENT_GROUPS (schedules_id ASC);
CREATE UNIQUE INDEX CHANGE_MANAGEMENT_GROUP_ID_UNIQUE ON CHANGE_MANAGEMENT_GROUPS (schedules_id ASC, group_id ASC);
-- -----------------------------------------------------
-- Table CHANGE_MANAGEMENT_SCHEDULES
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS CHANGE_MANAGEMENT_SCHEDULES (
id INT NOT NULL AUTO_INCREMENT,
change_management_groups_id INT NULL,
vnf_name VARCHAR(256) NOT NULL,
vnf_id VARCHAR(256) NULL,
status VARCHAR(45) NOT NULL,
start_time BIGINT NULL,
finish_time BIGINT NULL,
mso_request_id VARCHAR(45) NULL,
mso_status VARCHAR(45) NULL,
mso_message MEDIUMTEXT NULL,
mso_time BIGINT NULL,
dispatcher_instance VARCHAR(128) NULL,
dispatch_time BIGINT NULL,
execution_completed_time BIGINT NULL,
status_message MEDIUMTEXT NULL,
tm_change_id VARCHAR(15) NULL,
tm_approval_status VARCHAR(45) NULL,
tm_status VARCHAR(45) NULL,
CONSTRAINT PK_CHANGE_MANAGEMENT_SCHEDULES PRIMARY KEY (id),
CONSTRAINT FK_CHANGE_MANAGEMENT_SCHEDULES_CHANGE_MANAGEMENT_GROUP FOREIGN KEY (change_management_groups_id)
REFERENCES CHANGE_MANAGEMENT_GROUPS (id)
ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=INNODB;
CREATE INDEX FK_CHANGE_MANAGEMENT_GROUP_CHANGE_MANAGEMENT_SCHEDULES_IDX ON CHANGE_MANAGEMENT_SCHEDULES (change_management_groups_id ASC);
CREATE UNIQUE INDEX CHANGE_MANAGEMENT_SCHEDULES_VNF_NAME_UNIQUE ON CHANGE_MANAGEMENT_SCHEDULES (change_management_groups_id ASC, vnf_name ASC);
-- -----------------------------------------------------
-- Table CHANGE_MANAGEMENT_CHANGE_WINDOWS
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS CHANGE_MANAGEMENT_CHANGE_WINDOWS (
id INT NOT NULL AUTO_INCREMENT,
change_management_groups_id INT NOT NULL,
start_time BIGINT NULL,
finish_time BIGINT NULL,
CONSTRAINT PK_CHANGE_MANAGEMENT_CHANGE_WINDOWS PRIMARY KEY (id),
CONSTRAINT FK_CHANGE_WINDOWS_CHANGE_MANAGEMENT_GROUPS1 FOREIGN KEY (change_management_groups_id)
REFERENCES CHANGE_MANAGEMENT_GROUPS (id)
ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=INNODB;
CREATE INDEX FK_CHANGE_WINDOWS_CHANGE_MANAGEMENT_GROUPS1_IDX on CHANGE_MANAGEMENT_CHANGE_WINDOWS (change_management_groups_id ASC);
-- comment SQL_SAFE_UPDATES code in dev setup (testing)
-- uncomment in IT, IST, E2E Env's
SET SQL_SAFE_UPDATES = 0;
DELETE FROM DOMAINS;
INSERT INTO DOMAINS (`domain`) VALUES ('ChangeManagement');
DELETE FROM APPROVAL_TYPES;
INSERT INTO APPROVAL_TYPES (`domain`, `approval_type`, `approval_count`) VALUES ('ChangeManagement', 'Tier 2', '1');
|