From b4a65a67662e6537ca0b372a8b76d146ea757bb5 Mon Sep 17 00:00:00 2001 From: alena Date: Thu, 14 Apr 2011 16:55:15 -0700 Subject: [PATCH] bug 9453: domain path is not unique value, removed the constraint added during 2.1.8-2.2.2 upgrade --- .../cloud/upgrade/dao/Upgrade222to224.java | 19 +++++++++++++++++++ setup/db/db/schema-21to22.sql | 2 +- setup/db/db/schema-222to224.sql | 1 - 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/server/src/com/cloud/upgrade/dao/Upgrade222to224.java b/server/src/com/cloud/upgrade/dao/Upgrade222to224.java index d780bd37a4e..95c87e7518a 100644 --- a/server/src/com/cloud/upgrade/dao/Upgrade222to224.java +++ b/server/src/com/cloud/upgrade/dao/Upgrade222to224.java @@ -64,6 +64,7 @@ public class Upgrade222to224 implements DbUpgrade { updateGuestOsType(conn); updateNicsWithMode(conn); updateUserStatsWithNetwork(conn); + dropIndexIfExists(conn); } @Override @@ -219,4 +220,22 @@ public class Upgrade222to224 implements DbUpgrade { } } + private void dropIndexIfExists(Connection conn) { + try { + PreparedStatement pstmt = conn.prepareStatement("SHOW INDEX FROM domain WHERE KEY_NAME = 'path'"); + ResultSet rs = pstmt.executeQuery(); + + if (rs.next()) { + pstmt = conn.prepareStatement("ALTER TABLE `cloud`.`domain` DROP INDEX `path`"); + pstmt.executeUpdate(); + s_logger.debug("Unique key 'path' is removed successfully"); + } + + rs.close(); + pstmt.close(); + } catch (SQLException e) { + throw new CloudRuntimeException("Unable to drop 'path' index for 'domain' table due to:", e); + } + + } } diff --git a/setup/db/db/schema-21to22.sql b/setup/db/db/schema-21to22.sql index 35627c19e35..fb38c097c98 100755 --- a/setup/db/db/schema-21to22.sql +++ b/setup/db/db/schema-21to22.sql @@ -968,7 +968,7 @@ ALTER TABLE `cloud`.`instance_group` ADD CONSTRAINT `fk_instance_group__account_ ALTER TABLE `cloud`.`instance_group_vm_map` ADD CONSTRAINT `fk_instance_group_vm_map___group_id` FOREIGN KEY `fk_instance_group_vm_map___group_id` (`group_id`) REFERENCES `instance_group` (`id`) ON DELETE CASCADE; ALTER TABLE `cloud`.`instance_group_vm_map` ADD CONSTRAINT `fk_instance_group_vm_map___instance_id` FOREIGN KEY `fk_instance_group_vm_map___instance_id` (`instance_id`) REFERENCES `user_vm` (`id`) ON DELETE CASCADE; ALTER TABLE `cloud`.`secondary_storage_vm` MODIFY COLUMN `guid` varchar(255); -ALTER TABLE `cloud`.`domain` MODIFY COLUMN `path` varchar(255) UNIQUE NOT NULL; +ALTER TABLE `cloud`.`domain` MODIFY COLUMN `path` varchar(255) NOT NULL; ALTER TABLE `cloud`.`ssh_keypairs` ADD CONSTRAINT `fk_ssh_keypairs__account_id` FOREIGN KEY `fk_ssh_keypair__account_id` (`account_id`) REFERENCES `account` (`id`) ON DELETE CASCADE; ALTER TABLE `cloud`.`ssh_keypairs` ADD CONSTRAINT `fk_ssh_keypairs__domain_id` FOREIGN KEY `fk_ssh_keypair__domain_id` (`domain_id`) REFERENCES `domain` (`id`) ON DELETE CASCADE; diff --git a/setup/db/db/schema-222to224.sql b/setup/db/db/schema-222to224.sql index c0f0759a4a9..fc6d3068a4f 100644 --- a/setup/db/db/schema-222to224.sql +++ b/setup/db/db/schema-222to224.sql @@ -60,7 +60,6 @@ ALTER TABLE `cloud`.`host_pod_ref` ADD INDEX `i_host_pod_ref__allocation_state`( ALTER TABLE `cloud`.`host` ADD COLUMN `allocation_state` varchar(32) NOT NULL DEFAULT 'Enabled'; ALTER TABLE `cloud`.`host` ADD INDEX `i_host__allocation_state`(`allocation_state`); -ALTER TABLE `cloud`.`domain` DROP index `path`; ALTER TABLE `cloud`.`domain` ADD INDEX `i_domain__path`(`path`); CREATE TABLE `cloud`.`data_center_details` (