r1538 + redesign SLB relational model
[racktables] / install / init-structure.sql
1 /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
2 /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
3 /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
4 /*!40101 SET NAMES utf8 */;
5 /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
6 /*!40103 SET TIME_ZONE='+00:00' */;
7 /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
8 /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
9 /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
10 /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
11
12 --
13 -- Table structure for table `Atom`
14 --
15
16 DROP TABLE IF EXISTS `Atom`;
17 CREATE TABLE `Atom` (
18 `molecule_id` int(10) unsigned default NULL,
19 `rack_id` int(10) unsigned default NULL,
20 `unit_no` int(10) unsigned default NULL,
21 `atom` enum('front','interior','rear') default NULL
22 ) ENGINE=MyISAM;
23
24 --
25 -- Table structure for table `Attribute`
26 --
27
28 DROP TABLE IF EXISTS `Attribute`;
29 CREATE TABLE `Attribute` (
30 `attr_id` int(10) unsigned NOT NULL auto_increment,
31 `attr_type` enum('string','uint','float','dict') default NULL,
32 `attr_name` char(64) default NULL,
33 PRIMARY KEY (`attr_id`),
34 UNIQUE KEY `attr_name` (`attr_name`)
35 ) ENGINE=MyISAM AUTO_INCREMENT=10000;
36
37 --
38 -- Table structure for table `AttributeMap`
39 --
40
41 DROP TABLE IF EXISTS `AttributeMap`;
42 CREATE TABLE `AttributeMap` (
43 `objtype_id` int(10) unsigned NOT NULL default '1',
44 `attr_id` int(10) unsigned NOT NULL default '1',
45 `chapter_no` int(10) unsigned NOT NULL,
46 UNIQUE KEY `objtype_id` (`objtype_id`,`attr_id`)
47 ) ENGINE=MyISAM;
48
49 --
50 -- Table structure for table `AttributeValue`
51 --
52
53 DROP TABLE IF EXISTS `AttributeValue`;
54 CREATE TABLE `AttributeValue` (
55 `object_id` int(10) unsigned default NULL,
56 `attr_id` int(10) unsigned default NULL,
57 `string_value` char(128) default NULL,
58 `uint_value` int(10) unsigned default NULL,
59 `float_value` float default NULL,
60 UNIQUE KEY `object_id` (`object_id`,`attr_id`)
61 ) ENGINE=MyISAM;
62
63 --
64 -- Table structure for table `Chapter`
65 --
66
67 DROP TABLE IF EXISTS `Chapter`;
68 CREATE TABLE `Chapter` (
69 `chapter_no` int(10) unsigned NOT NULL auto_increment,
70 `sticky` enum('yes','no') default 'no',
71 `chapter_name` char(128) NOT NULL,
72 PRIMARY KEY (`chapter_no`),
73 UNIQUE KEY `chapter_name` (`chapter_name`)
74 ) ENGINE=MyISAM AUTO_INCREMENT=10000;
75
76 --
77 -- Table structure for table `Dictionary`
78 --
79
80 DROP TABLE IF EXISTS `Dictionary`;
81 CREATE TABLE `Dictionary` (
82 `chapter_no` int(10) unsigned NOT NULL,
83 `dict_key` int(10) unsigned NOT NULL auto_increment,
84 `dict_value` char(128) default NULL,
85 PRIMARY KEY (`dict_key`),
86 UNIQUE KEY `chap_to_key` (`chapter_no`,`dict_key`),
87 UNIQUE KEY `chap_to_val` (`chapter_no`,`dict_value`)
88 ) ENGINE=MyISAM AUTO_INCREMENT=50000;
89
90 --
91 -- Table structure for table `IPAddress`
92 --
93
94 DROP TABLE IF EXISTS `IPAddress`;
95 CREATE TABLE `IPAddress` (
96 `ip` int(10) unsigned NOT NULL,
97 `name` char(255) NOT NULL,
98 `reserved` enum('yes','no') default NULL,
99 PRIMARY KEY (`ip`)
100 ) ENGINE=MyISAM;
101
102 --
103 -- Table structure for table `IPBonds`
104 --
105
106 DROP TABLE IF EXISTS `IPBonds`;
107 CREATE TABLE `IPBonds` (
108 `object_id` int(10) unsigned NOT NULL,
109 `ip` int(10) unsigned NOT NULL,
110 `name` char(255) NOT NULL,
111 `type` enum('regular','shared','virtual') default NULL,
112 PRIMARY KEY (`object_id`,`ip`)
113 ) ENGINE=MyISAM;
114
115 --
116 -- Table structure for table `IPLoadBalancer`
117 --
118
119 DROP TABLE IF EXISTS `IPLoadBalancer`;
120 CREATE TABLE `IPLoadBalancer` (
121 `object_id` int(10) unsigned default NULL,
122 `rspool_id` int(10) unsigned default NULL,
123 `vs_id` int(10) unsigned default NULL,
124 `vsconfig` text,
125 `rsconfig` text,
126 UNIQUE KEY `LB-VS` (`object_id`,`vs_id`)
127 ) ENGINE=MyISAM;
128
129 --
130 -- Table structure for table `IPRSPool`
131 --
132
133 DROP TABLE IF EXISTS `IPRSPool`;
134 CREATE TABLE `IPRSPool` (
135 `id` int(10) unsigned NOT NULL auto_increment,
136 `name` char(255) default NULL,
137 `vsconfig` text,
138 `rsconfig` text,
139 PRIMARY KEY (`id`)
140 ) ENGINE=MyISAM;
141
142 --
143 -- Table structure for table `IPRanges`
144 --
145
146 DROP TABLE IF EXISTS `IPRanges`;
147 CREATE TABLE `IPRanges` (
148 `id` int(10) unsigned NOT NULL auto_increment,
149 `ip` int(10) unsigned NOT NULL,
150 `mask` int(10) unsigned NOT NULL,
151 `name` char(255) default NULL,
152 PRIMARY KEY (`id`)
153 ) ENGINE=MyISAM;
154
155 --
156 -- Table structure for table `IPRealServer`
157 --
158
159 DROP TABLE IF EXISTS `IPRealServer`;
160 CREATE TABLE `IPRealServer` (
161 `id` int(10) unsigned NOT NULL auto_increment,
162 `rsip` int(10) unsigned default NULL,
163 `rsport` smallint(5) unsigned default NULL,
164 `rspool_id` int(10) unsigned default NULL,
165 `rsconfig` text,
166 PRIMARY KEY (`id`),
167 UNIQUE KEY `pool-endpoint` (`rspool_id`,`rsip`,`rsport`)
168 ) ENGINE=MyISAM;
169
170 --
171 -- Table structure for table `IPVirtualService`
172 --
173
174 DROP TABLE IF EXISTS `IPVirtualService`;
175 CREATE TABLE `IPVirtualService` (
176 `id` int(10) unsigned NOT NULL auto_increment,
177 `vip` int(10) unsigned default NULL,
178 `vport` smallint(5) unsigned default NULL,
179 `proto` enum('TCP','UDP') NOT NULL default 'TCP',
180 `name` char(255) default NULL,
181 `vsconfig` text,
182 `rsconfig` text,
183 PRIMARY KEY (`id`)
184 ) ENGINE=MyISAM;
185
186 --
187 -- Table structure for table `Link`
188 --
189
190 DROP TABLE IF EXISTS `Link`;
191 CREATE TABLE `Link` (
192 `porta` int(10) unsigned NOT NULL,
193 `portb` int(10) unsigned NOT NULL,
194 PRIMARY KEY (`porta`,`portb`),
195 UNIQUE KEY `porta` (`porta`),
196 UNIQUE KEY `portb` (`portb`)
197 ) ENGINE=MyISAM;
198
199 --
200 -- Table structure for table `Molecule`
201 --
202
203 DROP TABLE IF EXISTS `Molecule`;
204 CREATE TABLE `Molecule` (
205 `id` int(10) unsigned NOT NULL auto_increment,
206 PRIMARY KEY (`id`)
207 ) ENGINE=MyISAM;
208
209 --
210 -- Table structure for table `MountOperation`
211 --
212
213 DROP TABLE IF EXISTS `MountOperation`;
214 CREATE TABLE `MountOperation` (
215 `id` int(10) unsigned NOT NULL auto_increment,
216 `object_id` int(10) unsigned NOT NULL,
217 `ctime` timestamp NOT NULL,
218 `user_name` char(64) default NULL,
219 `old_molecule_id` int(10) unsigned default NULL,
220 `new_molecule_id` int(10) unsigned default NULL,
221 `comment` text,
222 PRIMARY KEY (`id`)
223 ) ENGINE=MyISAM;
224
225 --
226 -- Table structure for table `Port`
227 --
228
229 DROP TABLE IF EXISTS `Port`;
230 CREATE TABLE `Port` (
231 `id` int(10) unsigned NOT NULL auto_increment,
232 `object_id` int(10) unsigned NOT NULL,
233 `name` char(255) NOT NULL,
234 `type` int(10) unsigned NOT NULL,
235 `l2address` char(64) default NULL,
236 `reservation_comment` char(255) default NULL,
237 `label` char(255) default NULL,
238 PRIMARY KEY (`id`),
239 UNIQUE KEY `object_id` (`object_id`,`name`),
240 UNIQUE KEY `l2address` (`l2address`),
241 KEY `type` (`type`)
242 ) ENGINE=MyISAM;
243
244 --
245 -- Table structure for table `PortCompat`
246 --
247
248 DROP TABLE IF EXISTS `PortCompat`;
249 CREATE TABLE `PortCompat` (
250 `type1` int(10) unsigned NOT NULL,
251 `type2` int(10) unsigned NOT NULL,
252 KEY `type1` (`type1`),
253 KEY `type2` (`type2`)
254 ) ENGINE=MyISAM;
255
256 --
257 -- Table structure for table `PortForwarding`
258 --
259
260 DROP TABLE IF EXISTS `PortForwarding`;
261 CREATE TABLE `PortForwarding` (
262 `object_id` int(10) unsigned NOT NULL,
263 `proto` int(11) NOT NULL,
264 `localip` int(10) unsigned NOT NULL,
265 `localport` smallint(5) unsigned NOT NULL,
266 `remoteip` int(10) unsigned NOT NULL,
267 `remoteport` smallint(5) unsigned NOT NULL,
268 `description` char(255) default NULL,
269 PRIMARY KEY (`object_id`,`proto`,`localip`,`localport`,`remoteip`,`remoteport`),
270 KEY `localip` (`localip`),
271 KEY `remoteip` (`remoteip`),
272 KEY `object_id` (`object_id`)
273 ) ENGINE=MyISAM;
274
275 --
276 -- Table structure for table `Rack`
277 --
278
279 DROP TABLE IF EXISTS `Rack`;
280 CREATE TABLE `Rack` (
281 `id` int(10) unsigned NOT NULL auto_increment,
282 `name` char(255) default NULL,
283 `deleted` enum('yes','no') NOT NULL default 'no',
284 `row_id` int(10) unsigned NOT NULL default '1',
285 `height` tinyint(3) unsigned NOT NULL default '42',
286 `comment` text,
287 `thumb_data` blob,
288 PRIMARY KEY (`id`)
289 ) ENGINE=MyISAM;
290
291 --
292 -- Table structure for table `RackHistory`
293 --
294
295 DROP TABLE IF EXISTS `RackHistory`;
296 CREATE TABLE `RackHistory` (
297 `id` int(10) unsigned default NULL,
298 `name` char(255) default NULL,
299 `deleted` enum('yes','no') default NULL,
300 `row_id` int(10) unsigned default NULL,
301 `height` int(10) unsigned default NULL,
302 `comment` text,
303 `ctime` timestamp NOT NULL,
304 `user_name` char(64) default NULL
305 ) ENGINE=MyISAM;
306
307 --
308 -- Table structure for table `RackObject`
309 --
310
311 DROP TABLE IF EXISTS `RackObject`;
312 CREATE TABLE `RackObject` (
313 `id` int(10) unsigned NOT NULL auto_increment,
314 `name` char(255) default NULL,
315 `label` char(255) default NULL,
316 `barcode` char(16) default NULL,
317 `deleted` enum('yes','no') NOT NULL default 'no',
318 `objtype_id` int(10) unsigned NOT NULL default '1',
319 `asset_no` char(64) default NULL,
320 `has_problems` enum('yes','no') NOT NULL default 'no',
321 `comment` text,
322 PRIMARY KEY (`id`),
323 UNIQUE KEY `RackObject_asset_no` (`asset_no`),
324 UNIQUE KEY `name` (`name`),
325 UNIQUE KEY `barcode` (`barcode`)
326 ) ENGINE=MyISAM;
327
328 --
329 -- Table structure for table `RackObjectHistory`
330 --
331
332 DROP TABLE IF EXISTS `RackObjectHistory`;
333 CREATE TABLE `RackObjectHistory` (
334 `id` int(10) unsigned default NULL,
335 `name` char(255) default NULL,
336 `label` char(255) default NULL,
337 `barcode` char(16) default NULL,
338 `deleted` enum('yes','no') default NULL,
339 `objtype_id` int(10) unsigned default NULL,
340 `asset_no` char(64) default NULL,
341 `has_problems` enum('yes','no') NOT NULL default 'no',
342 `comment` text,
343 `ctime` timestamp NOT NULL,
344 `user_name` char(64) default NULL
345 ) ENGINE=MyISAM;
346
347 --
348 -- Table structure for table `RackSpace`
349 --
350
351 DROP TABLE IF EXISTS `RackSpace`;
352 CREATE TABLE `RackSpace` (
353 `rack_id` int(10) unsigned NOT NULL default '0',
354 `unit_no` int(10) unsigned NOT NULL default '0',
355 `atom` enum('front','interior','rear') NOT NULL default 'interior',
356 `state` enum('A','U','T','W') NOT NULL default 'A',
357 `object_id` int(10) unsigned default NULL,
358 `problem_id` int(10) unsigned default NULL,
359 PRIMARY KEY (`rack_id`,`unit_no`,`atom`)
360 ) ENGINE=MyISAM;
361
362 --
363 -- Table structure for table `UserAccount`
364 --
365
366 DROP TABLE IF EXISTS `UserAccount`;
367 CREATE TABLE `UserAccount` (
368 `user_id` int(10) unsigned NOT NULL auto_increment,
369 `user_name` char(64) NOT NULL,
370 `user_enabled` enum('yes','no') NOT NULL default 'no',
371 `user_password_hash` char(128) default NULL,
372 `user_realname` char(64) default NULL,
373 PRIMARY KEY (`user_id`),
374 UNIQUE KEY `user_name` (`user_name`)
375 ) ENGINE=MyISAM AUTO_INCREMENT=10000;
376
377 --
378 -- Table structure for table `UserPermission`
379 --
380
381 DROP TABLE IF EXISTS `UserPermission`;
382 CREATE TABLE `UserPermission` (
383 `user_id` int(10) unsigned NOT NULL default '0',
384 `page` char(64) NOT NULL default '%',
385 `tab` char(64) NOT NULL default '%',
386 `access` enum('yes','no') NOT NULL default 'no',
387 UNIQUE KEY `user_id` (`user_id`,`page`,`tab`)
388 ) ENGINE=MyISAM;
389
390 --
391 -- Table structure for table `Config`
392 --
393
394 DROP TABLE IF EXISTS `Config`;
395 CREATE TABLE `Config` (
396 `varname` char(32) NOT NULL,
397 `varvalue` char(64) NOT NULL,
398 `vartype` enum('string','uint') NOT NULL default 'string',
399 `emptyok` enum('yes','no') NOT NULL default 'no',
400 `is_hidden` enum('yes','no') NOT NULL default 'yes',
401 `description` text,
402 PRIMARY KEY (`varname`)
403 ) ENGINE=MyISAM;
404
405 /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
406
407 /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
408 /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
409 /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
410 /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
411 /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
412 /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
413 /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;