You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
db-schema/db_scripts/diff/15402.up

64 lines
3.3 KiB

USE provisioning;
alter table `voip_preferences` add column `dynamic` tinyint(1) unsigned NOT NULL DEFAULT '0';
alter table `voip_preferences` add column `fielddev_pref` tinyint(1) unsigned NOT NULL DEFAULT '0' AFTER `devprof_pref`;
alter table `voip_preferences_enum` add column `fielddev_pref` tinyint(1) unsigned NOT NULL DEFAULT '0' AFTER `devprof_pref`;
update `voip_preferences` set fielddev_pref = 1 where devprof_pref = 1;
update `voip_preferences` set dynamic = 1 where attribute like '\_\_%';
update `voip_preferences` set fielddev_pref = 1 where dynamic = 1;
CREATE TABLE `voip_preference_relations` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`voip_preference_id` int(11) unsigned NOT NULL,
`autoprov_device_id` int(11) unsigned,
`reseller_id` int(11) unsigned,
PRIMARY KEY (`id`),
-- not unique, because autoprov_device_id can be null
KEY `voip_pref_rel_devices` (`voip_preference_id`,`autoprov_device_id`),
KEY `voip_pref_rel_reselle` (`voip_preference_id`,`reseller_id`),
KEY `vpid_ref` (`voip_preference_id`),
CONSTRAINT `vpid_ref` FOREIGN KEY (`voip_preference_id`) REFERENCES `voip_preferences` (`id`) ON UPDATE CASCADE ON DELETE CASCADE,
KEY `adid_ref` (`autoprov_device_id`),
CONSTRAINT `adid_ref` FOREIGN KEY (`autoprov_device_id`) REFERENCES `autoprov_devices` (`id`) ON UPDATE CASCADE ON DELETE CASCADE,
KEY `rid_ref` (`reseller_id`),
CONSTRAINT `rid_ref` FOREIGN KEY (`reseller_id`) REFERENCES `billing`.`resellers` (`id`) ON UPDATE CASCADE ON DELETE CASCADE
);
CREATE TABLE `voip_fielddev_preferences` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`device_id` int(11) unsigned NOT NULL,
`attribute_id` int(11) unsigned NOT NULL,
`value` varchar(128) NOT NULL,
`modify_timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `fielddevidattrid_idx` (`device_id`,`attribute_id`),
KEY `fielddeviceid_idx` (`device_id`),
KEY `attributeid_idx` (`attribute_id`),
CONSTRAINT `v_fdev_p_attributeid_ref` FOREIGN KEY (`attribute_id`) REFERENCES `voip_preferences` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `v_fd_p_deviceid_ref` FOREIGN KEY (`device_id`) REFERENCES `autoprov_devices` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
);
DROP TRIGGER IF EXISTS provisioning.voip_pref_icheck_trig;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`sipwise`@`localhost`*/ /*!50003 TRIGGER voip_pref_icheck_trig BEFORE INSERT ON voip_preferences
FOR EACH ROW BEGIN
IF ( ((NEW.attribute like '\_\_%') and !NEW.dynamic)
or ((NEW.attribute not like '\_\_%') and NEW.dynamic)
) THEN
SIGNAL sqlstate '45001' set message_text = "voip_preferences attributes are allowed either '__' prefixed + dynamic=1 or without the '__' prefix and dynamic=0";
END IF;
END */;;
DELIMITER ;
DROP TRIGGER IF EXISTS provisioning.voip_pref_ucheck_trig;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`sipwise`@`localhost`*/ /*!50003 TRIGGER voip_pref_ucheck_trig BEFORE UPDATE ON voip_preferences
FOR EACH ROW BEGIN
IF ( ((NEW.attribute like '\_\_%') and !NEW.dynamic)
or ((NEW.attribute not like '\_\_%') and NEW.dynamic)
) THEN
SIGNAL sqlstate '45001' set message_text = "voip_preferences attributes are allowed either '__' prefixed + dynamic=1 or without the '__' prefix and dynamic=0";
END IF;
END */;;
DELIMITER ;