mirror of https://github.com/sipwise/db-schema.git
+ add default pref values only if not existing yet + do not add "0" default values for fromer int prefs such as "lock" Change-Id: Ia726fd66f4e3261e6f450877612ece371d744408changes/45/18945/7
parent
82ff2e24f5
commit
ba48beb91b
@ -0,0 +1,30 @@
|
||||
use provisioning;
|
||||
|
||||
DROP TRIGGER IF EXISTS enum_set_default;
|
||||
|
||||
DELIMITER ;;
|
||||
|
||||
CREATE TRIGGER enum_set_default AFTER INSERT ON voip_preferences_enum
|
||||
FOR EACH ROW BEGIN
|
||||
IF (NEW.dom_pref=1 AND NEW.default_val = 1 AND NEW.value IS NOT NULL) THEN
|
||||
INSERT into voip_dom_preferences (domain_id, attribute_id, value)
|
||||
SELECT id, NEW.preference_id, NEW.value
|
||||
FROM voip_domains;
|
||||
END IF;
|
||||
IF (NEW.peer_pref=1 AND NEW.default_val = 1 AND NEW.value IS NOT NULL) THEN
|
||||
INSERT into voip_peer_preferences (peer_host_id, attribute_id, value)
|
||||
SELECT id, NEW.preference_id, NEW.value
|
||||
FROM voip_peer_hosts;
|
||||
END IF;
|
||||
IF (NEW.usr_pref=1 AND NEW.default_val = 1 AND NEW.value IS NOT NULL) THEN
|
||||
INSERT into voip_usr_preferences (subscriber_id, attribute_id, value)
|
||||
SELECT id, NEW.preference_id, NEW.value
|
||||
FROM voip_subscribers;
|
||||
END IF;
|
||||
IF (NEW.prof_pref=1 AND NEW.default_val = 1 AND NEW.value IS NOT NULL) THEN
|
||||
INSERT into voip_prof_preferences (profile_id, attribute_id, value)
|
||||
SELECT id, NEW.preference_id, NEW.value
|
||||
FROM voip_subscriber_profiles;
|
||||
END IF;
|
||||
END ;;
|
||||
DELIMITER ;
|
||||
@ -0,0 +1,45 @@
|
||||
use provisioning;
|
||||
|
||||
DROP TRIGGER IF EXISTS enum_set_default;
|
||||
|
||||
DELIMITER ;;
|
||||
|
||||
CREATE TRIGGER enum_set_default AFTER INSERT ON voip_preferences_enum
|
||||
FOR EACH ROW BEGIN
|
||||
|
||||
DECLARE do_insert tinyint(3) unsigned;
|
||||
|
||||
SELECT IF(NEW.default_val = 1 AND NEW.value IS NOT NULL
|
||||
AND (a.attribute NOT IN ("lock") # list of fromer int prefs, that do not store "0"
|
||||
OR NEW.value != "0"),1,0) INTO do_insert FROM voip_preferences a WHERE a.id = NEW.preference_id;
|
||||
|
||||
IF (NEW.dom_pref=1 AND do_insert=1) THEN
|
||||
INSERT into voip_dom_preferences (domain_id, attribute_id, value)
|
||||
SELECT e.id, NEW.preference_id, NEW.value
|
||||
FROM voip_domains e
|
||||
LEFT JOIN voip_dom_preferences v ON v.attribute_id = NEW.preference_id AND v.domain_id = e.id
|
||||
WHERE v.id IS NULL;
|
||||
END IF;
|
||||
IF (NEW.peer_pref=1 AND do_insert=1) THEN
|
||||
INSERT into voip_peer_preferences (peer_host_id, attribute_id, value)
|
||||
SELECT e.id, NEW.preference_id, NEW.value
|
||||
FROM voip_peer_hosts e
|
||||
LEFT JOIN voip_peer_preferences v ON v.attribute_id = NEW.preference_id AND v.peer_host_id = e.id
|
||||
WHERE v.id IS NULL;
|
||||
END IF;
|
||||
IF (NEW.usr_pref=1 AND do_insert=1) THEN
|
||||
INSERT into voip_usr_preferences (subscriber_id, attribute_id, value)
|
||||
SELECT e.id, NEW.preference_id, NEW.value
|
||||
FROM voip_subscribers e
|
||||
LEFT JOIN voip_usr_preferences v ON v.attribute_id = NEW.preference_id AND v.subscriber_id = e.id
|
||||
WHERE v.id IS NULL;
|
||||
END IF;
|
||||
IF (NEW.prof_pref=1 AND do_insert=1) THEN
|
||||
INSERT into voip_prof_preferences (profile_id, attribute_id, value)
|
||||
SELECT e.id, NEW.preference_id, NEW.value
|
||||
FROM voip_subscriber_profiles e
|
||||
LEFT JOIN voip_prof_preferences v ON v.attribute_id = NEW.preference_id AND v.profile_id = e.id
|
||||
WHERE v.id IS NULL;
|
||||
END IF;
|
||||
END ;;
|
||||
DELIMITER ;
|
||||
Loading…
Reference in new issue