mirror of https://github.com/Icinga/icinga2.git
82 lines
2.9 KiB
SQL
82 lines
2.9 KiB
SQL
-- -----------------------------------------
|
|
-- upgrade path for Icinga 2.8.0
|
|
--
|
|
-- -----------------------------------------
|
|
-- Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+
|
|
--
|
|
-- Please check https://docs.icinga.com for upgrading information!
|
|
-- -----------------------------------------
|
|
|
|
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
|
|
|
|
-- --------------------------------------------------------
|
|
-- Helper functions and procedures for DROP INDEX IF EXISTS
|
|
-- --------------------------------------------------------
|
|
|
|
DELIMITER //
|
|
DROP FUNCTION IF EXISTS ido_index_exists //
|
|
CREATE FUNCTION ido_index_exists(
|
|
f_table_name varchar(64),
|
|
f_index_name varchar(64)
|
|
)
|
|
RETURNS BOOL
|
|
DETERMINISTIC
|
|
READS SQL DATA
|
|
BEGIN
|
|
DECLARE index_exists BOOL DEFAULT FALSE;
|
|
SELECT EXISTS (
|
|
SELECT 1
|
|
FROM information_schema.statistics
|
|
WHERE table_schema = SCHEMA()
|
|
AND table_name = f_table_name
|
|
AND index_name = f_index_name
|
|
) INTO index_exists;
|
|
RETURN index_exists;
|
|
END //
|
|
|
|
DROP PROCEDURE IF EXISTS ido_drop_index_if_exists //
|
|
CREATE PROCEDURE ido_drop_index_if_exists (
|
|
IN p_table_name varchar(64),
|
|
IN p_index_name varchar(64)
|
|
)
|
|
DETERMINISTIC
|
|
MODIFIES SQL DATA
|
|
BEGIN
|
|
IF ido_index_exists(p_table_name, p_index_name)
|
|
THEN
|
|
SET @ido_drop_index_sql = CONCAT('ALTER TABLE `', SCHEMA(), '`.`', p_table_name, '` DROP INDEX `', p_index_name, '`');
|
|
PREPARE stmt FROM @ido_drop_index_sql;
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|
|
SET @ido_drop_index_sql = NULL;
|
|
END IF;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
CALL ido_drop_index_if_exists('icinga_downtimehistory', 'instance_id');
|
|
CALL ido_drop_index_if_exists('icinga_scheduleddowntime', 'instance_id');
|
|
CALL ido_drop_index_if_exists('icinga_commenthistory', 'instance_id');
|
|
CALL ido_drop_index_if_exists('icinga_comments', 'instance_id');
|
|
|
|
DROP FUNCTION ido_index_exists;
|
|
DROP PROCEDURE ido_drop_index_if_exists;
|
|
|
|
-- -----------------------------------------
|
|
-- #5458 IDO: Improve downtime removal/cancel
|
|
-- -----------------------------------------
|
|
|
|
CREATE INDEX idx_downtimehistory_remove ON icinga_downtimehistory (object_id, entry_time, scheduled_start_time, scheduled_end_time);
|
|
CREATE INDEX idx_scheduleddowntime_remove ON icinga_scheduleddowntime (object_id, entry_time, scheduled_start_time, scheduled_end_time);
|
|
|
|
-- -----------------------------------------
|
|
-- #5492 IDO: Improve comment removal
|
|
-- -----------------------------------------
|
|
|
|
CREATE INDEX idx_commenthistory_remove ON icinga_commenthistory (object_id, entry_time);
|
|
CREATE INDEX idx_comments_remove ON icinga_comments (object_id, entry_time);
|
|
|
|
-- -----------------------------------------
|
|
-- set dbversion
|
|
-- -----------------------------------------
|
|
INSERT INTO icinga_dbversion (name, version, create_time, modify_time) VALUES ('idoutils', '1.14.3', NOW(), NOW()) ON DUPLICATE KEY UPDATE version='1.14.3', modify_time=NOW();
|