r3056 - add constraints for: AttributeValue, RackObject, IPv4NAT, IPv4LB, IPv4VS
authorDenis Ovsienko <infrastation@yandex.ru>
Wed, 12 Aug 2009 10:18:16 +0000 (10:18 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Wed, 12 Aug 2009 10:18:16 +0000 (10:18 +0000)
ChangeLog
install/init-sample-racks.sql
install/init-structure.sql
upgrade.php

index bb82589..b7bf595 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,7 @@
        bugfix: work around array_fill_keys() from PHP 5.2 (ticket:278)
        bugfix: delete real servers on RS pool deletion (ticket:233)
        bugfix: "Same type, same tags" form was broken (ticket:279)
+       update: add more InnoDB foreign keys
 0.17.3 2009-08-08
        update: even better search function (ticket:20)
        update: suggest tag selector for new files and users (ticket:205)
index 1780b81..80d9036 100644 (file)
@@ -1,5 +1,65 @@
 set names 'utf8';
 
+INSERT INTO `RackObject` (id, name, label, barcode, objtype_id, asset_no, has_problems, comment) VALUES 
+(905,'london router','bbrtr1',NULL,7,'net247','no',''),
+(906,'londonswitch1','',NULL,8,NULL,'no',''),
+(907,'New-York router 1','bbrtr2a',NULL,7,'net55','no',''),
+(908,'moscow router','bbrtr3',NULL,7,NULL,'no',NULL),
+(909,'tokyo router','bbrtr4',NULL,7,NULL,'no',NULL),
+(910,'London server 1','lserver01',NULL,4,'srv500','no',''),
+(911,'London server 2','lserver02',NULL,4,'srv501','no',''),
+(912,'London server 3','lserver03',NULL,4,'srv502','no',''),
+(913,'London server 4','lserver04',NULL,4,'srv503','yes','this one needs replacement'),
+(914,'London server 5','lserver05',NULL,4,'srv504','no',''),
+(915,'london LB','llb',NULL,8,'net1000','no',''),
+(916,'shared storage','',NULL,5,NULL,'no',''),
+(917,'london-NAS','',NULL,7,'net1001','no',''),
+(918,'London server 6','lserver06',NULL,4,'srv505','no',NULL),
+(919,'London server 7','lserver07',NULL,4,'srv506','no',NULL),
+(920,'backup library','lbackup',NULL,6,'misc200','no',NULL),
+(921,'lserver06 array','lserver06 array',NULL,5,NULL,'no',NULL),
+(922,'lserver07 array','lserver07 array',NULL,5,NULL,'no',NULL),
+(923,'Tokyo server 1','tserver01',NULL,4,'srv654','no',NULL),
+(924,'Tokyo server 2','tserver02',NULL,4,'srv848','no',NULL),
+(925,'Tokyo server 3','tserver03',NULL,4,'srv139','no',NULL),
+(926,'Tokyo switch','tswitch',NULL,8,'net385','no',NULL),
+(927,'New-York router 2','bbrtr2b',NULL,7,'net498','no',NULL),
+(928,'New-York IPVS LB A','nylba',NULL,4,'net554','no',NULL),
+(929,'New-York IPVS LB B','nylbb',NULL,4,'net555','no',NULL),
+(930,'New-York server switch A','nyswitcha',NULL,8,'net084','no',NULL),
+(931,'New-York server switch B','nyswitchb',NULL,8,'net486','no',NULL),
+(932,'New-York server 1A','nysrv1a',NULL,4,'srv287','no',NULL),
+(933,'New-York server 1B','nysrv1b',NULL,4,'srv288','no',NULL),
+(934,'New-York server 2A','nysrv2a',NULL,4,NULL,'no',NULL),
+(935,'New-York server 2B','nysrv2b',NULL,4,NULL,'no',NULL),
+(936,'New-York server 3A','nysrv3a',NULL,4,NULL,'no',NULL),
+(937,'New-York server 3B','nysrv3b',NULL,4,NULL,'no',NULL),
+(938,'New-York server 4A','nysrv4a',NULL,4,NULL,'no',NULL),
+(939,'New-York server 4B','nysrv4b',NULL,4,NULL,'no',NULL),
+(940,'New-York server 5A','nysrv5a',NULL,4,NULL,'no',NULL),
+(941,'New-York server 5B','nysrv5b',NULL,4,NULL,'no',NULL),
+(942,'wing A UPS','',NULL,12,NULL,'no',NULL),
+(943,'wing B UPS','',NULL,12,NULL,'no',NULL),
+(944,'network UPS','',NULL,12,NULL,'no',NULL),
+(945,NULL,'',NULL,9,NULL,'no',NULL),
+(946,NULL,'',NULL,9,NULL,'no',NULL),
+(947,NULL,'',NULL,2,NULL,'no',NULL),
+(948,NULL,'',NULL,2,NULL,'no',NULL),
+(949,NULL,'',NULL,2,NULL,'no',NULL),
+(950,NULL,'',NULL,2,NULL,'no',NULL),
+(951,NULL,'',NULL,2,NULL,'no',NULL),
+(952,NULL,'',NULL,2,NULL,'no',NULL),
+(953,NULL,'',NULL,2,NULL,'no',NULL),
+(954,NULL,'',NULL,2,NULL,'no',NULL),
+(955,NULL,'',NULL,2,NULL,'no',NULL),
+(956,'mps1','','200161',4,NULL,'no',NULL),
+(957,'mps2','','200283',4,NULL,'no',NULL),
+(958,'mps3','','200881',4,NULL,'no',NULL),
+(959,'mps4','','200458',4,NULL,'no',NULL),
+(960,'mps5','','200112',4,NULL,'no',NULL),
+(961,'mskswitch','',NULL,8,'sw0001','no',NULL),
+(962,'moscow kvm switch','','300221',445,'sw0002','no',NULL);
+
 INSERT INTO `AttributeValue` VALUES (905,2,NULL,269,NULL);
 INSERT INTO `AttributeValue` VALUES (906,2,NULL,165,NULL);
 INSERT INTO `AttributeValue` VALUES (915,2,NULL,118,NULL);
@@ -145,10 +205,6 @@ INSERT INTO `IPv4Allocation` VALUES (927,180879998,'','shared');
 INSERT INTO `IPv4Allocation` VALUES (908,180880446,'fa1/0','router');
 INSERT INTO `IPv4Allocation` VALUES (961,180880385,'','regular');
 
-INSERT INTO `IPv4LB` VALUES (928,1,1,NULL,NULL);
-INSERT INTO `IPv4LB` VALUES (929,1,1,NULL,NULL);
-INSERT INTO `IPv4LB` VALUES (929,2,2,NULL,NULL);
-
 INSERT INTO `IPv4Network` (`id`, `ip`, `mask`, `name`) VALUES (96,180879616,26,'London network devices and VIPs');
 INSERT INTO `IPv4Network` (`id`, `ip`, `mask`, `name`) VALUES (97,180879680,26,'London HA server farm');
 INSERT INTO `IPv4Network` (`id`, `ip`, `mask`, `name`) VALUES (98,180879872,26,'New-York network devices');
@@ -164,6 +220,13 @@ INSERT INTO `IPv4Network` (`id`, `ip`, `mask`, `name`) VALUES (107,180880448,26,
 INSERT INTO `IPv4RSPool` VALUES (1,'Apache servers',NULL,NULL);
 INSERT INTO `IPv4RSPool` VALUES (2,'Resin servers',NULL,NULL);
 
+INSERT INTO `IPv4VS` VALUES (1,180879877,80,'TCP','virtual web','lvs_sched wlc\r\nlvs_method NAT\r\ndelay_loop 3\r\nalpha\r\nomega\r\nquorum 3\r\nhysteresis 1\r\n\r\n# this is a comment\r\n# VS name is %VNAME%\r\n#\r\n','HTTP_GET {\r\nurl {\r\npath /\r\nstatus_code 200\r\n}\r\nconnect_timeout 1\r\n}');
+INSERT INTO `IPv4VS` VALUES (2,180879878,80,'TCP','virtual app','lvs_sched wlc\r\nlvs_method NAT\r\ndelay_loop 3\r\nalpha\r\nomega\r\nquorum 3\r\nhysteresis 1\r\n\r\n','HTTP_GET {\r\nurl {\r\npath /\r\nstatus_code 200\r\n}\r\nconnect_timeout 1\r\n}');
+
+INSERT INTO `IPv4LB` VALUES (928,1,1,NULL,NULL);
+INSERT INTO `IPv4LB` VALUES (929,1,1,NULL,NULL);
+INSERT INTO `IPv4LB` VALUES (929,2,2,NULL,NULL);
+
 INSERT INTO `IPv4RS` VALUES (1,'yes',180879973,80,1,NULL);
 INSERT INTO `IPv4RS` VALUES (2,'yes',180879974,80,1,NULL);
 INSERT INTO `IPv4RS` VALUES (3,'no',180879975,80,1,NULL);
@@ -175,9 +238,6 @@ INSERT INTO `IPv4RS` VALUES (8,'yes',180879980,8080,2,NULL);
 INSERT INTO `IPv4RS` VALUES (9,'yes',180879981,8080,2,NULL);
 INSERT INTO `IPv4RS` VALUES (10,'yes',180879982,8080,2,NULL);
 
-INSERT INTO `IPv4VS` VALUES (1,180879877,80,'TCP','virtual web','lvs_sched wlc\r\nlvs_method NAT\r\ndelay_loop 3\r\nalpha\r\nomega\r\nquorum 3\r\nhysteresis 1\r\n\r\n# this is a comment\r\n# VS name is %VNAME%\r\n#\r\n','HTTP_GET {\r\nurl {\r\npath /\r\nstatus_code 200\r\n}\r\nconnect_timeout 1\r\n}');
-INSERT INTO `IPv4VS` VALUES (2,180879878,80,'TCP','virtual app','lvs_sched wlc\r\nlvs_method NAT\r\ndelay_loop 3\r\nalpha\r\nomega\r\nquorum 3\r\nhysteresis 1\r\n\r\n','HTTP_GET {\r\nurl {\r\npath /\r\nstatus_code 200\r\n}\r\nconnect_timeout 1\r\n}');
-
 INSERT INTO `Port` VALUES (3057,905,'se1/0',32,NULL,NULL,'');
 INSERT INTO `Port` VALUES (3058,905,'se1/1',32,NULL,NULL,'');
 INSERT INTO `Port` VALUES (3059,905,'fa2/0',19,'00000000A001',NULL,'');
@@ -350,66 +410,6 @@ INSERT INTO `Rack` (id, name, row_id, height, comment) VALUES
 (46,'NY102',50002,42,'server farm wing B'),
 (47,'T01',50001,16,'');
 
-INSERT INTO `RackObject` (id, name, label, barcode, objtype_id, asset_no, has_problems, comment) VALUES 
-(905,'london router','bbrtr1',NULL,7,'net247','no',''),
-(906,'londonswitch1','',NULL,8,NULL,'no',''),
-(907,'New-York router 1','bbrtr2a',NULL,7,'net55','no',''),
-(908,'moscow router','bbrtr3',NULL,7,NULL,'no',NULL),
-(909,'tokyo router','bbrtr4',NULL,7,NULL,'no',NULL),
-(910,'London server 1','lserver01',NULL,4,'srv500','no',''),
-(911,'London server 2','lserver02',NULL,4,'srv501','no',''),
-(912,'London server 3','lserver03',NULL,4,'srv502','no',''),
-(913,'London server 4','lserver04',NULL,4,'srv503','yes','this one needs replacement'),
-(914,'London server 5','lserver05',NULL,4,'srv504','no',''),
-(915,'london LB','llb',NULL,8,'net1000','no',''),
-(916,'shared storage','',NULL,5,NULL,'no',''),
-(917,'london-NAS','',NULL,7,'net1001','no',''),
-(918,'London server 6','lserver06',NULL,4,'srv505','no',NULL),
-(919,'London server 7','lserver07',NULL,4,'srv506','no',NULL),
-(920,'backup library','lbackup',NULL,6,'misc200','no',NULL),
-(921,'lserver06 array','lserver06 array',NULL,5,NULL,'no',NULL),
-(922,'lserver07 array','lserver07 array',NULL,5,NULL,'no',NULL),
-(923,'Tokyo server 1','tserver01',NULL,4,'srv654','no',NULL),
-(924,'Tokyo server 2','tserver02',NULL,4,'srv848','no',NULL),
-(925,'Tokyo server 3','tserver03',NULL,4,'srv139','no',NULL),
-(926,'Tokyo switch','tswitch',NULL,8,'net385','no',NULL),
-(927,'New-York router 2','bbrtr2b',NULL,7,'net498','no',NULL),
-(928,'New-York IPVS LB A','nylba',NULL,4,'net554','no',NULL),
-(929,'New-York IPVS LB B','nylbb',NULL,4,'net555','no',NULL),
-(930,'New-York server switch A','nyswitcha',NULL,8,'net084','no',NULL),
-(931,'New-York server switch B','nyswitchb',NULL,8,'net486','no',NULL),
-(932,'New-York server 1A','nysrv1a',NULL,4,'srv287','no',NULL),
-(933,'New-York server 1B','nysrv1b',NULL,4,'srv288','no',NULL),
-(934,'New-York server 2A','nysrv2a',NULL,4,NULL,'no',NULL),
-(935,'New-York server 2B','nysrv2b',NULL,4,NULL,'no',NULL),
-(936,'New-York server 3A','nysrv3a',NULL,4,NULL,'no',NULL),
-(937,'New-York server 3B','nysrv3b',NULL,4,NULL,'no',NULL),
-(938,'New-York server 4A','nysrv4a',NULL,4,NULL,'no',NULL),
-(939,'New-York server 4B','nysrv4b',NULL,4,NULL,'no',NULL),
-(940,'New-York server 5A','nysrv5a',NULL,4,NULL,'no',NULL),
-(941,'New-York server 5B','nysrv5b',NULL,4,NULL,'no',NULL),
-(942,'wing A UPS','',NULL,12,NULL,'no',NULL),
-(943,'wing B UPS','',NULL,12,NULL,'no',NULL),
-(944,'network UPS','',NULL,12,NULL,'no',NULL),
-(945,NULL,'',NULL,9,NULL,'no',NULL),
-(946,NULL,'',NULL,9,NULL,'no',NULL),
-(947,NULL,'',NULL,2,NULL,'no',NULL),
-(948,NULL,'',NULL,2,NULL,'no',NULL),
-(949,NULL,'',NULL,2,NULL,'no',NULL),
-(950,NULL,'',NULL,2,NULL,'no',NULL),
-(951,NULL,'',NULL,2,NULL,'no',NULL),
-(952,NULL,'',NULL,2,NULL,'no',NULL),
-(953,NULL,'',NULL,2,NULL,'no',NULL),
-(954,NULL,'',NULL,2,NULL,'no',NULL),
-(955,NULL,'',NULL,2,NULL,'no',NULL),
-(956,'mps1','','200161',4,NULL,'no',NULL),
-(957,'mps2','','200283',4,NULL,'no',NULL),
-(958,'mps3','','200881',4,NULL,'no',NULL),
-(959,'mps4','','200458',4,NULL,'no',NULL),
-(960,'mps5','','200112',4,NULL,'no',NULL),
-(961,'mskswitch','',NULL,8,'sw0001','no',NULL),
-(962,'moscow kvm switch','','300221',445,'sw0002','no',NULL);
-
 INSERT INTO `RackSpace` VALUES (41,9,'interior','T',905);
 INSERT INTO `RackSpace` VALUES (41,9,'front','T',905);
 INSERT INTO `RackSpace` VALUES (41,10,'interior','T',905);
index 3f15eee..61f192f 100644 (file)
@@ -23,14 +23,30 @@ CREATE TABLE `AttributeMap` (
   UNIQUE KEY `objtype_id` (`objtype_id`,`attr_id`)
 ) ENGINE=MyISAM;
 
+CREATE TABLE `RackObject` (
+  `id` int(10) unsigned NOT NULL auto_increment,
+  `name` char(255) default NULL,
+  `label` char(255) default NULL,
+  `barcode` char(16) default NULL,
+  `objtype_id` int(10) unsigned NOT NULL default '1',
+  `asset_no` char(64) default NULL,
+  `has_problems` enum('yes','no') NOT NULL default 'no',
+  `comment` text,
+  PRIMARY KEY  (`id`),
+  UNIQUE KEY `RackObject_asset_no` (`asset_no`),
+  UNIQUE KEY `name` (`name`),
+  UNIQUE KEY `barcode` (`barcode`)
+) ENGINE=InnoDB;
+
 CREATE TABLE `AttributeValue` (
   `object_id` int(10) unsigned default NULL,
   `attr_id` int(10) unsigned default NULL,
   `string_value` char(128) default NULL,
   `uint_value` int(10) unsigned default NULL,
   `float_value` float default NULL,
-  UNIQUE KEY `object_id` (`object_id`,`attr_id`)
-) ENGINE=MyISAM;
+  UNIQUE KEY `object_id` (`object_id`,`attr_id`),
+  CONSTRAINT `AttributeValue-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `RackObject` (`id`)
+) ENGINE=InnoDB;
 
 CREATE TABLE `Chapter` (
   `id` int(10) unsigned NOT NULL auto_increment,
@@ -98,23 +114,39 @@ CREATE TABLE `IPv4Allocation` (
   PRIMARY KEY  (`object_id`,`ip`)
 ) ENGINE=MyISAM;
 
-CREATE TABLE `IPv4LB` (
-  `object_id` int(10) unsigned default NULL,
-  `rspool_id` int(10) unsigned default NULL,
-  `vs_id` int(10) unsigned default NULL,
+CREATE TABLE `IPv4RSPool` (
+  `id` int(10) unsigned NOT NULL auto_increment,
+  `name` char(255) default NULL,
   `vsconfig` text,
   `rsconfig` text,
-  UNIQUE KEY `LB-VS` (`object_id`,`vs_id`)
-) ENGINE=MyISAM;
+  PRIMARY KEY  (`id`)
+) ENGINE=InnoDB;
 
-CREATE TABLE `IPv4RSPool` (
+CREATE TABLE `IPv4VS` (
   `id` int(10) unsigned NOT NULL auto_increment,
+  `vip` int(10) unsigned default NULL,
+  `vport` smallint(5) unsigned default NULL,
+  `proto` enum('TCP','UDP') NOT NULL default 'TCP',
   `name` char(255) default NULL,
   `vsconfig` text,
   `rsconfig` text,
   PRIMARY KEY  (`id`)
 ) ENGINE=InnoDB;
 
+CREATE TABLE `IPv4LB` (
+  `object_id` int(10) unsigned default NULL,
+  `rspool_id` int(10) unsigned default NULL,
+  `vs_id` int(10) unsigned default NULL,
+  `vsconfig` text,
+  `rsconfig` text,
+  UNIQUE KEY `LB-VS` (`object_id`,`vs_id`),
+  KEY `IPv4LB-FK-rspool_id` (`rspool_id`),
+  KEY `IPv4LB-FK-vs_id` (`vs_id`),
+  CONSTRAINT `IPv4LB-FK-vs_id` FOREIGN KEY (`vs_id`) REFERENCES `IPv4VS` (`id`),
+  CONSTRAINT `IPv4LB-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `RackObject` (`id`),
+  CONSTRAINT `IPv4LB-FK-rspool_id` FOREIGN KEY (`rspool_id`) REFERENCES `IPv4RSPool` (`id`)
+) ENGINE=InnoDB;
+
 CREATE TABLE `IPv4Network` (
   `id` int(10) unsigned NOT NULL auto_increment,
   `ip` int(10) unsigned NOT NULL,
@@ -137,17 +169,6 @@ CREATE TABLE `IPv4RS` (
   CONSTRAINT `IPv4RS-FK` FOREIGN KEY (`rspool_id`) REFERENCES `IPv4RSPool` (`id`) ON DELETE CASCADE
 ) ENGINE=InnoDB;
 
-CREATE TABLE `IPv4VS` (
-  `id` int(10) unsigned NOT NULL auto_increment,
-  `vip` int(10) unsigned default NULL,
-  `vport` smallint(5) unsigned default NULL,
-  `proto` enum('TCP','UDP') NOT NULL default 'TCP',
-  `name` char(255) default NULL,
-  `vsconfig` text,
-  `rsconfig` text,
-  PRIMARY KEY  (`id`)
-) ENGINE=MyISAM;
-
 CREATE TABLE `LDAPCache` (
   `presented_username` char(64) NOT NULL,
   `successful_hash` char(40) NOT NULL,
@@ -187,7 +208,8 @@ CREATE TABLE `Port` (
   UNIQUE KEY `per_object` (`object_id`,`name`,`type`),
   KEY `type` (`type`),
   KEY `comment` (`reservation_comment`),
-  KEY `l2address` (`l2address`)
+  KEY `l2address` (`l2address`),
+  CONSTRAINT `Port-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `RackObject` (`id`)
 ) ENGINE=InnoDB;
 
 CREATE TABLE `Link` (
@@ -218,8 +240,9 @@ CREATE TABLE `IPv4NAT` (
   PRIMARY KEY  (`object_id`,`proto`,`localip`,`localport`,`remoteip`,`remoteport`),
   KEY `localip` (`localip`),
   KEY `remoteip` (`remoteip`),
-  KEY `object_id` (`object_id`)
-) ENGINE=MyISAM;
+  KEY `object_id` (`object_id`),
+  CONSTRAINT `IPv4NAT-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `RackObject` (`id`)
+) ENGINE=InnoDB;
 
 CREATE TABLE `RackRow` (
   `id` int(10) unsigned NOT NULL auto_increment,
@@ -249,21 +272,6 @@ CREATE TABLE `RackHistory` (
   `user_name` char(64) default NULL
 ) ENGINE=MyISAM;
 
-CREATE TABLE `RackObject` (
-  `id` int(10) unsigned NOT NULL auto_increment,
-  `name` char(255) default NULL,
-  `label` char(255) default NULL,
-  `barcode` char(16) default NULL,
-  `objtype_id` int(10) unsigned NOT NULL default '1',
-  `asset_no` char(64) default NULL,
-  `has_problems` enum('yes','no') NOT NULL default 'no',
-  `comment` text,
-  PRIMARY KEY  (`id`),
-  UNIQUE KEY `RackObject_asset_no` (`asset_no`),
-  UNIQUE KEY `name` (`name`),
-  UNIQUE KEY `barcode` (`barcode`)
-) ENGINE=MyISAM;
-
 CREATE TABLE `RackObjectHistory` (
   `id` int(10) unsigned default NULL,
   `name` char(255) default NULL,
index e483b67..9771005 100644 (file)
@@ -273,10 +273,21 @@ CREATE TABLE `LDAPCache` (
                        $query[] = "ALTER TABLE Port ENGINE=InnoDB";
                        $query[] = "ALTER TABLE IPv4RS ENGINE=InnoDB";
                        $query[] = "ALTER TABLE IPv4RSPool ENGINE=InnoDB";
+                       $query[] = "ALTER TABLE AttributeValue ENGINE=InnoDB";
+                       $query[] = "ALTER TABLE RackObject ENGINE=InnoDB";
+                       $query[] = "ALTER TABLE IPv4NAT ENGINE=InnoDB";
+                       $query[] = "ALTER TABLE IPv4LB ENGINE=InnoDB";
+                       $query[] = "ALTER TABLE IPv4VS ENGINE=InnoDB";
                        $query[] = "DELETE FROM IPv4RS WHERE rspool_id NOT IN (SELECT id FROM IPv4RSPool)";
-                       $query[] = "ALTER TABLE Link ADD CONSTRAINT `Link-FK-a` FOREIGN KEY (porta) REFERENCES Port (id)";
                        $query[] = "ALTER TABLE Link ADD CONSTRAINT `Link-FK-b` FOREIGN KEY (portb) REFERENCES Port (id)";
+                       $query[] = "ALTER TABLE Link ADD CONSTRAINT `Link-FK-a` FOREIGN KEY (porta) REFERENCES Port (id)";
                        $query[] = "ALTER TABLE IPv4RS ADD CONSTRAINT `IPv4RS-FK` FOREIGN KEY (rspool_id) REFERENCES IPv4RSPool (id) ON DELETE CASCADE";
+                       $query[] = "ALTER TABLE AttributeValue ADD CONSTRAINT `AttributeValue-FK-object_id` FOREIGN KEY (object_id) REFERENCES RackObject (id)";
+                       $query[] = "ALTER TABLE IPv4NAT ADD CONSTRAINT `IPv4NAT-FK-object_id` FOREIGN KEY (object_id) REFERENCES RackObject (id)";
+                       $query[] = "ALTER TABLE Port ADD CONSTRAINT `Port-FK-object_id` FOREIGN KEY (object_id) REFERENCES RackObject (id)";
+                       $query[] = "ALTER TABLE IPv4LB ADD CONSTRAINT `IPv4LB-FK-rspool_id` FOREIGN KEY (rspool_id) REFERENCES IPv4RSPool (id)";
+                       $query[] = "ALTER TABLE IPv4LB ADD CONSTRAINT `IPv4LB-FK-object_id` FOREIGN KEY (object_id) REFERENCES RackObject (id)";
+                       $query[] = "ALTER TABLE IPv4LB ADD CONSTRAINT `IPv4LB-FK-vs_id` FOREIGN KEY (vs_id) REFERENCES IPv4VS (id)";
                        $query[] = "UPDATE Config SET varvalue = '0.17.4' WHERE varname = 'DB_VERSION'";
                        break;
                default: