diff --git a/misc/sql/installed_db_version b/misc/sql/installed_db_version index 690a72ce..b5ef940a 100644 --- a/misc/sql/installed_db_version +++ b/misc/sql/installed_db_version @@ -1 +1 @@ -3000012 +3010400 diff --git a/misc/sql/mysql-upgrade/3010400/delete-device-cascade.sh b/misc/sql/mysql-upgrade/3010400/delete-device-cascade.sh new file mode 100755 index 00000000..4089e294 --- /dev/null +++ b/misc/sql/mysql-upgrade/3010400/delete-device-cascade.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +echo ' +ALTER TABLE EventsCam DROP CONSTRAINT `EventsCam_ibfk_3`; +ALTER TABLE EventsCam ADD CONSTRAINT `EventsCam_ibfk_3` FOREIGN KEY (`device_id`) REFERENCES `Devices` (`id`) ON UPDATE CASCADE ON DELETE CASCADE; + +ALTER TABLE Media DROP CONSTRAINT `Media_ibfk_1`; +ALTER TABLE Media ADD CONSTRAINT `Media_ibfk_1` FOREIGN KEY (`device_id`) REFERENCES `Devices` (`id`) ON UPDATE CASCADE ON DELETE CASCADE; +' | mysql -h"$host" -D"$dbname" -u"$user" -p"$password" + +exit 0 diff --git a/misc/sql/schema_mysql.sql b/misc/sql/schema_mysql.sql index 779a37c9..ee4fdae0 100644 --- a/misc/sql/schema_mysql.sql +++ b/misc/sql/schema_mysql.sql @@ -174,7 +174,7 @@ CREATE TABLE `EventsCam` ( KEY `time_index` (`time`) USING BTREE, CONSTRAINT `EventsCam_ibfk_1` FOREIGN KEY (`media_id`) REFERENCES `Media` (`id`) ON DELETE CASCADE, CONSTRAINT `EventsCam_ibfk_2` FOREIGN KEY (`level_id`) REFERENCES `EventLevels` (`id`), - CONSTRAINT `EventsCam_ibfk_3` FOREIGN KEY (`device_id`) REFERENCES `Devices` (`id`) ON UPDATE CASCADE, + CONSTRAINT `EventsCam_ibfk_3` FOREIGN KEY (`device_id`) REFERENCES `Devices` (`id`) ON UPDATE CASCADE ON DELETE CASCADE, CONSTRAINT `EventsCam_ibfk_4` FOREIGN KEY (`type_id`) REFERENCES `EventTypesCam` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -227,7 +227,7 @@ CREATE TABLE `Media` ( `archive` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `device_id` (`device_id`), - CONSTRAINT `Media_ibfk_1` FOREIGN KEY (`device_id`) REFERENCES `Devices` (`id`) ON UPDATE CASCADE + CONSTRAINT `Media_ibfk_1` FOREIGN KEY (`device_id`) REFERENCES `Devices` (`id`) ON UPDATE CASCADE ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `OnvifEvents`;