diff --git a/engine/schema/src/com/cloud/upgrade/dao/Upgrade440to450.java b/engine/schema/src/com/cloud/upgrade/dao/Upgrade440to450.java index c1f853e8179..caf3b422d23 100644 --- a/engine/schema/src/com/cloud/upgrade/dao/Upgrade440to450.java +++ b/engine/schema/src/com/cloud/upgrade/dao/Upgrade440to450.java @@ -19,6 +19,9 @@ package com.cloud.upgrade.dao; import java.io.File; import java.sql.Connection; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import org.apache.log4j.Logger; @@ -55,6 +58,7 @@ public class Upgrade440to450 implements DbUpgrade { @Override public void performDataMigration(Connection conn) { + dropInvalidKeyFromStoragePoolTable(conn); } @@ -67,4 +71,17 @@ public class Upgrade440to450 implements DbUpgrade { return new File[] {new File(script)}; } + + private void dropInvalidKeyFromStoragePoolTable(Connection conn) { + HashMap> uniqueKeys = new HashMap>(); + List keys = new ArrayList(); + + keys.add("id_2"); + uniqueKeys.put("storage_pool", keys); + + s_logger.debug("Droping id_2 key from storage_pool table"); + for (String tableName : uniqueKeys.keySet()) { + DbUpgradeUtils.dropKeysIfExist(conn, tableName, uniqueKeys.get(tableName), false); + } + } } diff --git a/setup/db/db/schema-440to450.sql b/setup/db/db/schema-440to450.sql index 5fd62002e89..d047060d26e 100644 --- a/setup/db/db/schema-440to450.sql +++ b/setup/db/db/schema-440to450.sql @@ -240,3 +240,5 @@ ALTER TABLE `cloud`.`user` ADD COLUMN domain_id bigint(20) unsigned DEFAULT NULL ALTER TABLE `cloud`.`user` ADD CONSTRAINT `fk_user__domain_id` FOREIGN KEY `fk_user__domain_id`(`domain_id`) REFERENCES `domain`(`id`) ON DELETE CASCADE; UPDATE `cloud`.`user` SET `cloud`.`user`.domain_id=(SELECT `cloud`.`account`.domain_id FROM `cloud`.`account` WHERE `cloud`.`account`.id=`cloud`.`user`.account_id) where id > 0; ALTER TABLE `cloud`.`user` ADD UNIQUE KEY `username_domain_id` (`username`,`domain_id`); + +ALTER TABLE `cloud`.`volumes` CHANGE COLUMN `iso_id` `iso_id` bigint(20) unsigned COMMENT 'The id of the iso from which the volume was created';