From abc86196f7fc27d8357aabd843a8018beb125c69 Mon Sep 17 00:00:00 2001 From: Jared Hancock <jared@osticket.com> Date: Thu, 6 Aug 2015 16:42:48 -0500 Subject: [PATCH] upgrade: Fix scrambled collaborator data --- include/class.collaborator.php | 6 ++++++ .../upgrader/streams/core/2d590ffa-9143a511.patch.sql | 11 +++++++++++ 2 files changed, 17 insertions(+) diff --git a/include/class.collaborator.php b/include/class.collaborator.php index 6bc891e5f..b51fbe48c 100644 --- a/include/class.collaborator.php +++ b/include/class.collaborator.php @@ -114,6 +114,12 @@ implements EmailContact, ITicketUser { return $this->user_id; } + static function create($vars=false) { + $inst = parent::create($vars); + $inst->created = SqlFunction::NOW(); + return $inst; + } + function save($refetch=false) { if ($this->dirty) $this->updated = SqlFunction::NOW(); diff --git a/include/upgrader/streams/core/2d590ffa-9143a511.patch.sql b/include/upgrader/streams/core/2d590ffa-9143a511.patch.sql index 1f6fd0b70..4244e3bd5 100644 --- a/include/upgrader/streams/core/2d590ffa-9143a511.patch.sql +++ b/include/upgrader/streams/core/2d590ffa-9143a511.patch.sql @@ -27,6 +27,17 @@ RENAME TABLE `%TABLE_PREFIX%ticket_collaborator` TO `%TABLE_PREFIX%thread_collab ALTER TABLE `%TABLE_PREFIX%thread_collaborator` CHANGE `ticket_id` `thread_id` int(11) unsigned NOT NULL DEFAULT '0'; +UPDATE `%TABLE_PREFIX%thread_collaborator` t1 + LEFT JOIN `%TABLE_PREFIX%thread` t2 ON (t2.object_id = t1.thread_id and t2.object_type = 'T') + SET t1.thread_id = t2.id, t1.created = t2.created; + +-- Drop zombie collaborators from tickets which were deleted and had +-- collaborators and the collaborators were not removed +DELETE A1.* + FROM `%TABLE_PREFIX%thread_collaborator` A1 + LEFT JOIN `%TABLE_PREFIX%thread` A2 ON (A2.id = A1.thread_id) + WHERE A2.id IS NULL; + ALTER TABLE `%TABLE_PREFIX%task` ADD `lock_id` int(11) unsigned NOT NULL DEFAULT '0' AFTER `team_id`; -- GitLab