diff --git a/include/upgrader/streams/core/9143a511-00000000.patch.sql b/include/upgrader/streams/core/9143a511-00000000.patch.sql new file mode 100644 index 0000000000000000000000000000000000000000..10a6a23214346ab8fdc42578ae01fcdf867ef5a8 --- /dev/null +++ b/include/upgrader/streams/core/9143a511-00000000.patch.sql @@ -0,0 +1,28 @@ + +ALTER TABLE `%TABLE_PREFIX%ticket_event` + ADD `id` int(10) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST, + CHANGE `ticket_id` `thread_id` int(11) unsigned NOT NULL default '0', + CHANGE `staff` `username` varchar(128) NOT NULL default 'SYSTEM', + CHANGE `state` `state` enum('created','closed','reopened','assigned','transferred','overdue','edited','viewed','error','collab','resent') NOT NULL, + ADD `data` varchar(1024) DEFAULT NULL COMMENT 'Encoded differences' AFTER `state`, + ADD `uid` int(11) unsigned DEFAULT NULL AFTER `username`, + ADD `uid_type` char(1) NOT NULL DEFAULT 'S' AFTER `uid`, + RENAME TO `%TABLE_PREFIX%thread_event`; + +-- Change the `ticket_id` column to the values in `%thread`.`id` +CREATE TABLE `%TABLE_PREFIX%_ticket_thread_evt` + (PRIMARY KEY (`object_id`)) + SELECT `object_id`, `id` FROM `%TABLE_PREFIX%thread` + WHERE `object_type` = 'T'; + +UPDATE `%TABLE_PREFIX%thread_event` A1 + JOIN `%TABLE_PREFIX%_ticket_thread_evt` A2 ON (A1.`thread_id` = A2.`object_id`) + SET A1.`thread_id` = A2.`id`; + +DROP TABLE `%TABLE_PREFIX%_ticket_thread_evt`; + +-- Attempt to connect the `username` to the staff_id +UPDATE `%TABLE_PREFIX%thread_event` A1 + LEFT JOIN `%TABLE_PREFIX%staff` A2 ON (A2.`username` = A1.`username`) + SET A1.`uid` = A2.`staff_id` + WHERE A1.`username` != 'SYSTEM'; diff --git a/setup/inc/streams/core/install-mysql.sql b/setup/inc/streams/core/install-mysql.sql index 26f129681118b2c67eea32dc5f4b74f78d30a656..3ecb6bff63ea7a9df79958e498b18981fdde17f1 100644 --- a/setup/inc/streams/core/install-mysql.sql +++ b/setup/inc/streams/core/install-mysql.sql @@ -712,18 +712,22 @@ CREATE TABLE `%TABLE_PREFIX%lock` ( KEY `staff_id` (`staff_id`) ) DEFAULT CHARSET=utf8; -DROP TABLE IF EXISTS `%TABLE_PREFIX%ticket_event`; -CREATE TABLE `%TABLE_PREFIX%ticket_event` ( - `ticket_id` int(11) unsigned NOT NULL default '0', +DROP TABLE IF EXISTS `%TABLE_PREFIX%thread_event`; +CREATE TABLE `%TABLE_PREFIX%thread_event` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `thread_id` int(11) unsigned NOT NULL default '0', `staff_id` int(11) unsigned NOT NULL, `team_id` int(11) unsigned NOT NULL, `dept_id` int(11) unsigned NOT NULL, `topic_id` int(11) unsigned NOT NULL, - `state` enum('created','closed','reopened','assigned','transferred','overdue') NOT NULL, - `staff` varchar(255) NOT NULL default 'SYSTEM', + `state` enum('created','closed','reopened','assigned','transferred','overdue','edited','viewed','error','collab','resent') NOT NULL, + `data` varchar(1024) DEFAULT NULL COMMENT 'Encoded differences', + `username` varchar(128) NOT NULL default 'SYSTEM', + `uid` int(11) unsigned DEFAULT NULL, + `uid_type` char(1) NOT NULL DEFAULT 'S', `annulled` tinyint(1) unsigned NOT NULL default '0', `timestamp` datetime NOT NULL, - KEY `ticket_state` (`ticket_id`, `state`, `timestamp`), + KEY `ticket_state` (`thread_id`, `state`, `timestamp`), KEY `ticket_stats` (`timestamp`, `state`) ) DEFAULT CHARSET=utf8;