diff --git a/setup/db/create-index-fk.sql b/setup/db/create-index-fk.sql index a3f2d9306af..e1d83a9f26a 100755 --- a/setup/db/create-index-fk.sql +++ b/setup/db/create-index-fk.sql @@ -1,16 +1,5 @@ # This file is obsolete! Put what you need into create-schema.sql -ALTER TABLE `cloud`.`storage_pool` ADD CONSTRAINT `fk_storage_pool__pod_id` FOREIGN KEY `fk_storage_pool__pod_id` (`pod_id`) REFERENCES `host_pod_ref` (`id`) ON DELETE CASCADE; -ALTER TABLE `cloud`.`storage_pool` ADD INDEX `i_storage_pool__pod_id`(`pod_id`); -ALTER TABLE `cloud`.`storage_pool` ADD CONSTRAINT `fk_storage_pool__cluster_id` FOREIGN KEY `fk_storage_pool__cluster_id`(`cluster_id`) REFERENCES `cloud`.`cluster`(`id`); - -ALTER TABLE `cloud`.`storage_pool_details` ADD INDEX `i_storage_pool_details__name__value`(`name`(128), `value`(128)); - -ALTER TABLE `cloud`.`user` ADD INDEX `i_user__secret_key_removed`(`secret_key`, `removed`); -ALTER TABLE `cloud`.`user` ADD UNIQUE `i_user__api_key`(`api_key`); -ALTER TABLE `cloud`.`user` ADD CONSTRAINT `fk_user__account_id` FOREIGN KEY `fk_user__account_id` (`account_id`) REFERENCES `account` (`id`) ON DELETE CASCADE; -ALTER TABLE `cloud`.`user` ADD INDEX `i_user__account_id`(`account_id`); - ALTER TABLE `cloud`.`account` ADD CONSTRAINT `fk_account__domain_id` FOREIGN KEY `fk_account__domain_id` (`domain_id`) REFERENCES `domain` (`id`); ALTER TABLE `cloud`.`account` ADD INDEX `i_account__domain_id`(`domain_id`); @@ -30,7 +19,6 @@ ALTER TABLE `cloud`.`event` ADD INDEX `i_event__type_id`(`type`); ALTER TABLE `cloud`.`vm_template` ADD INDEX `i_vm_template__public`(`public`); - ALTER TABLE `cloud`.`upload` ADD CONSTRAINT `fk_upload__host_id` FOREIGN KEY `fk_upload__host_id` (`host_id`) REFERENCES `host` (`id`) ON DELETE CASCADE; ALTER TABLE `cloud`.`upload` ADD INDEX `i_upload__host_id`(`host_id`); ALTER TABLE `cloud`.`upload` ADD INDEX `i_upload__type_id`(`type_id`); @@ -59,14 +47,6 @@ ALTER TABLE `cloud`.`snapshot_schedule` ADD CONSTRAINT `fk__snapshot_schedule_sn ALTER TABLE `cloud`.`snapshot_schedule` ADD INDEX `i_snapshot_schedule__snapshot_id`(`snapshot_id`); ALTER TABLE `cloud`.`snapshot_schedule` ADD INDEX `i_snapshot_schedule__scheduled_timestamp`(`scheduled_timestamp`); -ALTER TABLE `cloud`.`async_job` ADD INDEX `i_async__user_id`(`user_id`); -ALTER TABLE `cloud`.`async_job` ADD INDEX `i_async__account_id`(`account_id`); -ALTER TABLE `cloud`.`async_job` ADD INDEX `i_async__instance_type_id`(`instance_type`,`instance_id`); -ALTER TABLE `cloud`.`async_job` ADD INDEX `i_async__job_cmd`(`job_cmd`); -ALTER TABLE `cloud`.`async_job` ADD INDEX `i_async__created`(`created`); -ALTER TABLE `cloud`.`async_job` ADD INDEX `i_async__last_updated`(`last_updated`); -ALTER TABLE `cloud`.`async_job` ADD INDEX `i_async__last_poll`(`last_polled`); - ALTER TABLE `cloud`.`sync_queue` ADD UNIQUE `i_sync_queue__objtype__objid`(`sync_objtype`, `sync_objid`); ALTER TABLE `cloud`.`sync_queue` ADD INDEX `i_sync_queue__created`(`created`); ALTER TABLE `cloud`.`sync_queue` ADD INDEX `i_sync_queue__last_updated`(`last_updated`); diff --git a/setup/db/create-schema.sql b/setup/db/create-schema.sql index f106ea60c83..5131d0e9064 100755 --- a/setup/db/create-schema.sql +++ b/setup/db/create-schema.sql @@ -270,6 +270,7 @@ CREATE TABLE `cloud`.`network_offerings` ( `guest_type` char(32) COMMENT 'guest ip type of network offering', `redundant_router` int(1) unsigned NOT NULL DEFAULT 0 COMMENT 'true if network offering provides redundant routers', PRIMARY KEY (`id`), + INDEX `i_network_offerings__system_only`(`system_only`), INDEX `i_network_offerings__removed`(`removed`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -326,7 +327,11 @@ CREATE TABLE `cloud`.`configuration` ( `name` varchar(255) NOT NULL, `value` varchar(4095), `description` varchar(1024), - PRIMARY KEY (`name`) + PRIMARY KEY (`name`), + INDEX `i_configuration__instance`(`instance`), + INDEX `i_configuration__name`(`name`), + INDEX `i_configuration__category`(`category`), + INDEX `i_configuration__component`(`component`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `cloud`.`op_ha_work` ( @@ -712,7 +717,8 @@ CREATE TABLE `cloud`.`mshost` ( `removed` datetime COMMENT 'date removed if not null', `alert_count` integer NOT NULL DEFAULT 0, PRIMARY KEY (`id`), - INDEX `i_mshost__removed`(`removed`) + INDEX `i_mshost__removed`(`removed`), + INDEX `i_mshost__last_update`(`last_update`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `cloud`.`host_tags` ( @@ -740,7 +746,11 @@ CREATE TABLE `cloud`.`user` ( `registration_token` varchar(255) default NULL, `is_registered` tinyint NOT NULL DEFAULT 0 COMMENT '1: yes, 0: no', PRIMARY KEY (`id`), - INDEX `i_user__removed`(`removed`) + INDEX `i_user__removed`(`removed`), + INDEX `i_user__secret_key_removed`(`secret_key`, `removed`), + UNIQUE `i_user__api_key`(`api_key`), + CONSTRAINT `fk_user__account_id` FOREIGN KEY `fk_user__account_id` (`account_id`) REFERENCES `account` (`id`) ON DELETE CASCADE, + INDEX `i_user__account_id`(`account_id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; CREATE TABLE `cloud`.`event` ( @@ -1040,7 +1050,10 @@ CREATE TABLE `cloud`.`resource_count` ( `domain_id` bigint unsigned, `type` varchar(255), `count` bigint NOT NULL default '0', - PRIMARY KEY (`id`) + PRIMARY KEY (`id`), + CONSTRAINT `fk_resource_count__account_id` FOREIGN KEY `fk_resource_count__account_id`(`account_id`) REFERENCES `account`(`id`) ON DELETE CASCADE, + CONSTRAINT `fk_resource_count__domain_id` FOREIGN KEY `fk_resource_count__domain_id`(`domain_id`) REFERENCES `domain`(`id`) ON DELETE CASCADE, + INDEX `i_resource_count__type`(`type`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `cloud`.`op_host_capacity` ( @@ -1096,8 +1109,15 @@ CREATE TABLE `cloud`.`async_job` ( `last_updated` datetime COMMENT 'date created', `last_polled` datetime COMMENT 'date polled', `removed` datetime COMMENT 'date removed', - PRIMARY KEY (`id`), - INDEX `i_async_job__removed`(`removed`) + PRIMARY KEY (`id`), + INDEX `i_async_job__removed`(`removed`), + INDEX `i_async__user_id`(`user_id`), + INDEX `i_async__account_id`(`account_id`), + INDEX `i_async__instance_type_id`(`instance_type`,`instance_id`), + INDEX `i_async__job_cmd`(`job_cmd`), + INDEX `i_async__created`(`created`), + INDEX `i_async__last_updated`(`last_updated`), + INDEX `i_async__last_poll`(`last_polled`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `cloud`.`sync_queue` ( @@ -1166,7 +1186,7 @@ CREATE TABLE `cloud`.`service_offering` ( `default_use` tinyint(1) unsigned NOT NULL DEFAULT 0 COMMENT 'is this offering a default system offering', `vm_type` varchar(32) COMMENT 'type of offering specified for system offerings', PRIMARY KEY (`id`), - CONSTRAINT `fk_service_offering__id` FOREIGN KEY (`id`) REFERENCES `disk_offering`(`id`) ON DELETE CASCADE + CONSTRAINT `fk_service_offering__id` FOREIGN KEY `fk_service_offering__id`(`id`) REFERENCES `disk_offering`(`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `cloud`.`network_rule_config` ( @@ -1227,6 +1247,9 @@ CREATE TABLE `cloud`.`storage_pool` ( `update_time` DATETIME, `status` varchar(32), PRIMARY KEY (`id`), + CONSTRAINT `fk_storage_pool__pod_id` FOREIGN KEY `fk_storage_pool__pod_id` (`pod_id`) REFERENCES `host_pod_ref` (`id`) ON DELETE CASCADE, + INDEX `i_storage_pool__pod_id`(`pod_id`), + CONSTRAINT `fk_storage_pool__cluster_id` FOREIGN KEY `fk_storage_pool__cluster_id`(`cluster_id`) REFERENCES `cloud`.`cluster`(`id`), INDEX `i_storage_pool__removed`(`removed`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -1236,7 +1259,8 @@ CREATE TABLE `cloud`.`storage_pool_details` ( `name` varchar(255) NOT NULL COMMENT 'name of the detail', `value` varchar(255) NOT NULL COMMENT 'value of the detail', PRIMARY KEY (`id`), - CONSTRAINT `fk_storage_pool_details__pool_id` FOREIGN KEY `fk_storage_pool_details__pool_id`(`pool_id`) REFERENCES `storage_pool`(`id`) ON DELETE CASCADE + CONSTRAINT `fk_storage_pool_details__pool_id` FOREIGN KEY `fk_storage_pool_details__pool_id`(`pool_id`) REFERENCES `storage_pool`(`id`) ON DELETE CASCADE, + INDEX `i_storage_pool_details__name__value`(`name`(128), `value`(128)) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `cloud`.`storage_pool_host_ref` (