diff --git a/include/class.collaborator.php b/include/class.collaborator.php index 6bc891e5fd9fd53d19789faac4de813fc2ab1dfc..b51fbe48cddd695b76496db3c3fd34c3bf335dcb 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 1f6fd0b70b44de0a0917f461349c64ea9fcbae0f..4244e3bd590ea4c8f44fe131bed41748432e4095 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`;