mirror of
https://github.com/apache/cloudstack.git
synced 2025-11-02 11:52:28 +01:00
engine-schema: make adding/dropping indexes idempotent (#9171)
* engine-schema: make adding/dropping indexes idempotent Fixes #9170 * fix Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com> --------- Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
This commit is contained in:
parent
8d211e75c0
commit
21d07132ad
@ -23,11 +23,20 @@
|
|||||||
CALL `cloud`.`IDEMPOTENT_ADD_COLUMN`('cloud.resource_limit', 'tag', 'varchar(64) DEFAULT NULL COMMENT "tag for the limit" ');
|
CALL `cloud`.`IDEMPOTENT_ADD_COLUMN`('cloud.resource_limit', 'tag', 'varchar(64) DEFAULT NULL COMMENT "tag for the limit" ');
|
||||||
CALL `cloud`.`IDEMPOTENT_ADD_COLUMN`('cloud.resource_count', 'tag', 'varchar(64) DEFAULT NULL COMMENT "tag for the resource count" ');
|
CALL `cloud`.`IDEMPOTENT_ADD_COLUMN`('cloud.resource_count', 'tag', 'varchar(64) DEFAULT NULL COMMENT "tag for the resource count" ');
|
||||||
CALL `cloud`.`IDEMPOTENT_ADD_COLUMN`('cloud.resource_reservation', 'tag', 'varchar(64) DEFAULT NULL COMMENT "tag for the resource reservation" ');
|
CALL `cloud`.`IDEMPOTENT_ADD_COLUMN`('cloud.resource_reservation', 'tag', 'varchar(64) DEFAULT NULL COMMENT "tag for the resource reservation" ');
|
||||||
ALTER TABLE `resource_count`
|
CALL `cloud`.`IDEMPOTENT_DROP_INDEX`('i_resource_count__type_accountId', 'cloud.resource_count');
|
||||||
DROP INDEX `i_resource_count__type_accountId`,
|
CALL `cloud`.`IDEMPOTENT_DROP_INDEX`('i_resource_count__type_domaintId', 'cloud.resource_count');
|
||||||
DROP INDEX `i_resource_count__type_domaintId`,
|
|
||||||
ADD UNIQUE INDEX `i_resource_count__type_tag_accountId` (`type`,`tag`,`account_id`),
|
DROP PROCEDURE IF EXISTS `cloud`.`IDEMPOTENT_ADD_UNIQUE_INDEX`;
|
||||||
ADD UNIQUE INDEX `i_resource_count__type_tag_domaintId` (`type`,`tag`,`domain_id`);
|
CREATE PROCEDURE `cloud`.`IDEMPOTENT_ADD_UNIQUE_INDEX` (
|
||||||
|
IN in_table_name VARCHAR(200),
|
||||||
|
IN in_index_name VARCHAR(200),
|
||||||
|
IN in_index_definition VARCHAR(1000)
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
DECLARE CONTINUE HANDLER FOR 1061 BEGIN END; SET @ddl = CONCAT('ALTER TABLE ', in_table_name, ' ', 'ADD UNIQUE INDEX ', in_index_name, ' ', in_index_definition); PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; END;
|
||||||
|
|
||||||
|
CALL `cloud`.`IDEMPOTENT_ADD_UNIQUE_INDEX`('cloud.resource_count', 'i_resource_count__type_tag_accountId', '(type, tag, account_id)');
|
||||||
|
CALL `cloud`.`IDEMPOTENT_ADD_UNIQUE_INDEX`('cloud.resource_count', 'i_resource_count__type_tag_domainId', '(type, tag, domain_id)');
|
||||||
|
|
||||||
ALTER TABLE `cloud`.`resource_reservation`
|
ALTER TABLE `cloud`.`resource_reservation`
|
||||||
MODIFY COLUMN `amount` bigint NOT NULL;
|
MODIFY COLUMN `amount` bigint NOT NULL;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user