PageRenderTime 29ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/include/upgrader/streams/core/c00511c7-7be60a84.patch.sql

https://gitlab.com/billyprice1/osTicket
SQL | 311 lines | 253 code | 36 blank | 22 comment | 0 complexity | 95a54dd647c2a64dd0cbd9e2330fb751 MD5 | raw file
  1. /**
  2. * @version v1.7
  3. *
  4. * @schema c00511c7c1db65c0cfad04b4842afc57
  5. */
  6. -- Add a table to contain the attachment file contents
  7. DROP TABLE IF EXISTS `%TABLE_PREFIX%file`;
  8. CREATE TABLE `%TABLE_PREFIX%file` (
  9. `id` int(11) NOT NULL auto_increment,
  10. `type` varchar(255) NOT NULL default '',
  11. `size` varchar(25) NOT NULL default '',
  12. `hash` varchar(125) NOT NULL,
  13. `name` varchar(255) NOT NULL default '',
  14. `filedata` longblob NOT NULL,
  15. `created` datetime NOT NULL,
  16. PRIMARY KEY (`id`),
  17. KEY `hash` (`hash`)
  18. ) DEFAULT CHARSET=utf8;
  19. -- update ticket attachments ref. table.
  20. ALTER TABLE `%TABLE_PREFIX%ticket_attachment`
  21. CHANGE `ref_type` `ref_type` ENUM( 'M', 'R', 'N' ) NOT NULL DEFAULT 'M',
  22. ADD `file_id` INT UNSIGNED NOT NULL DEFAULT '0' AFTER `ticket_id`,
  23. ADD INDEX ( `file_id` );
  24. -- Add Team ID and 'API' as a valid ticket source
  25. ALTER TABLE `%TABLE_PREFIX%ticket`
  26. ADD `team_id` INT UNSIGNED NOT NULL DEFAULT '0' AFTER `staff_id`,
  27. ADD INDEX ( `team_id` ),
  28. CHANGE `source` `source` ENUM(
  29. 'Web', 'Email', 'Phone', 'API', 'Other') NOT NULL DEFAULT 'Other';
  30. -- Add table for ticket history (statistics) tracking
  31. DROP TABLE IF EXISTS `%TABLE_PREFIX%ticket_event`;
  32. CREATE TABLE `%TABLE_PREFIX%ticket_event` (
  33. `ticket_id` int(11) unsigned NOT NULL default '0',
  34. `staff_id` int(11) unsigned NOT NULL,
  35. `team_id` int(11) unsigned NOT NULL,
  36. `dept_id` int(11) unsigned NOT NULL,
  37. `topic_id` int(11) unsigned NOT NULL,
  38. `state` enum('created','closed','reopened','assigned','transferred','overdue') NOT NULL,
  39. `staff` varchar(255) NOT NULL default 'SYSTEM',
  40. `timestamp` datetime NOT NULL,
  41. KEY `ticket_state` (`ticket_id`, `state`, `timestamp`),
  42. KEY `ticket_stats` (`timestamp`, `state`)
  43. ) DEFAULT CHARSET=utf8;
  44. ALTER TABLE `%TABLE_PREFIX%config`
  45. ADD `passwd_reset_period` INT UNSIGNED NOT NULL DEFAULT '0' AFTER `staff_session_timeout`,
  46. ADD `default_timezone_id` INT UNSIGNED NOT NULL DEFAULT '0' AFTER `default_template_id`,
  47. ADD `default_sla_id` INT UNSIGNED NOT NULL DEFAULT '0' AFTER `default_dept_id`,
  48. CHANGE `spoof_default_smtp` `allow_email_spoofing` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
  49. CHANGE `enable_mail_fetch` `enable_mail_polling` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
  50. ADD `max_user_file_uploads` TINYINT UNSIGNED NOT NULL AFTER `max_file_size`,
  51. ADD `max_staff_file_uploads` TINYINT UNSIGNED NOT NULL AFTER `max_user_file_uploads`,
  52. ADD `assigned_alert_active` TINYINT(1) UNSIGNED NOT NULL DEFAULT '1' AFTER `overdue_alert_dept_members`,
  53. ADD `assigned_alert_staff` TINYINT(1) UNSIGNED NOT NULL DEFAULT '1' AFTER `assigned_alert_active`,
  54. ADD `assigned_alert_team_lead` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' AFTER `assigned_alert_staff`,
  55. ADD `assigned_alert_team_members` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' AFTER `assigned_alert_team_lead`,
  56. ADD `transfer_alert_active` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '0' AFTER `note_alert_dept_manager` ,
  57. ADD `transfer_alert_assigned` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '0' AFTER `transfer_alert_active` ,
  58. ADD `transfer_alert_dept_manager` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '1' AFTER `transfer_alert_assigned` ,
  59. ADD `transfer_alert_dept_members` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '0' AFTER `transfer_alert_dept_manager`,
  60. ADD `send_sys_errors` TINYINT(1) UNSIGNED NOT NULL DEFAULT '1' AFTER `enable_email_piping`,
  61. ADD `enable_kb` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' AFTER `use_email_priority`,
  62. ADD `enable_premade` TINYINT(1) UNSIGNED NOT NULL DEFAULT '1' AFTER `enable_kb`,
  63. ADD `show_related_tickets` TINYINT(1) UNSIGNED NOT NULL DEFAULT '1' AFTER `auto_assign_reopened_tickets`,
  64. ADD `schema_signature` CHAR( 32 ) NOT NULL AFTER `ostversion`;
  65. -- copy over timezone id - based on offset.
  66. UPDATE `%TABLE_PREFIX%config` SET default_timezone_id =
  67. (SELECT id FROM `%TABLE_PREFIX%timezone` WHERE offset = `%TABLE_PREFIX%config`.timezone_offset);
  68. ALTER TABLE `%TABLE_PREFIX%staff`
  69. ADD `passwdreset` DATETIME NULL DEFAULT NULL AFTER `lastlogin`;
  70. DROP TABLE IF EXISTS `%TABLE_PREFIX%sla`;
  71. CREATE TABLE IF NOT EXISTS `%TABLE_PREFIX%sla` (
  72. `id` int(11) unsigned NOT NULL auto_increment,
  73. `isactive` tinyint(1) unsigned NOT NULL default '1',
  74. `enable_priority_escalation` tinyint(1) unsigned NOT NULL default '1',
  75. `disable_overdue_alerts` tinyint(1) unsigned NOT NULL default '0',
  76. `grace_period` int(10) unsigned NOT NULL default '0',
  77. `name` varchar(64) NOT NULL default '',
  78. `notes` text,
  79. `created` datetime NOT NULL,
  80. `updated` datetime NOT NULL,
  81. PRIMARY KEY (`id`),
  82. UNIQUE KEY `name` (`name`)
  83. ) DEFAULT CHARSET=utf8;
  84. -- Create a default SLA
  85. INSERT INTO `%TABLE_PREFIX%sla` (`isactive`, `enable_priority_escalation`,
  86. `disable_overdue_alerts`, `grace_period`, `name`, `notes`, `created`, `updated`)
  87. VALUES (1, 1, 0, 48, 'Default SLA', NULL, NOW(), NOW());
  88. -- Create a TEAM table
  89. DROP TABLE IF EXISTS `%TABLE_PREFIX%team`;
  90. CREATE TABLE IF NOT EXISTS `%TABLE_PREFIX%team` (
  91. `team_id` int(10) unsigned NOT NULL auto_increment,
  92. `lead_id` int(10) unsigned NOT NULL default '0',
  93. `isenabled` tinyint(1) unsigned NOT NULL default '1',
  94. `noalerts` tinyint(1) unsigned NOT NULL default '0',
  95. `name` varchar(125) NOT NULL default '',
  96. `notes` text,
  97. `created` datetime NOT NULL,
  98. `updated` datetime NOT NULL,
  99. PRIMARY KEY (`team_id`),
  100. UNIQUE KEY `name` (`name`),
  101. KEY `isnabled` (`isenabled`),
  102. KEY `lead_id` (`lead_id`)
  103. ) DEFAULT CHARSET=utf8;
  104. -- Create a default TEAM
  105. INSERT INTO `%TABLE_PREFIX%team` (`lead_id`, `isenabled`, `noalerts`, `name`, `notes`, `created`, `updated`)
  106. VALUES (0, 1, 0, 'Level I Support', '', NOW(), NOW());
  107. DROP TABLE IF EXISTS `%TABLE_PREFIX%team_member`;
  108. CREATE TABLE IF NOT EXISTS `%TABLE_PREFIX%team_member` (
  109. `team_id` int(10) unsigned NOT NULL default '0',
  110. `staff_id` int(10) unsigned NOT NULL,
  111. `updated` datetime NOT NULL,
  112. PRIMARY KEY (`team_id`,`staff_id`)
  113. ) DEFAULT CHARSET=utf8;
  114. ALTER TABLE `%TABLE_PREFIX%department`
  115. ADD sla_id INT UNSIGNED NOT NULL DEFAULT '0' AFTER tpl_id;
  116. ALTER TABLE `%TABLE_PREFIX%staff`
  117. ADD `notes` TEXT NULL DEFAULT NULL AFTER `signature`,
  118. ADD `assigned_only` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' AFTER `onvacation`,
  119. ADD `show_assigned_tickets` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' AFTER `assigned_only`,
  120. ADD `timezone_id` INT UNSIGNED NOT NULL DEFAULT '0' AFTER `dept_id`,
  121. ADD `default_signature_type` ENUM( 'none', 'mine', 'dept' ) NOT NULL DEFAULT 'none' AFTER `auto_refresh_rate`;
  122. -- Copy over time zone offet to tz_id
  123. UPDATE `%TABLE_PREFIX%staff` SET timezone_id =
  124. (SELECT id FROM `%TABLE_PREFIX%timezone` WHERE offset = `%TABLE_PREFIX%staff`.timezone_offset);
  125. ALTER TABLE `%TABLE_PREFIX%groups`
  126. CHANGE `can_manage_kb` `can_manage_premade` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
  127. ADD `can_manage_faq` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' AFTER `can_manage_premade`,
  128. ADD `can_assign_tickets` TINYINT( 1 ) UNSIGNED NOT NULL default '1' AFTER `can_close_tickets`,
  129. ADD notes TEXT NULL AFTER can_manage_faq;
  130. -- Add new columns to the templates table
  131. ALTER TABLE `%TABLE_PREFIX%email_template`
  132. ADD `isactive` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' AFTER `cfg_id`,
  133. ADD `transfer_alert_subj` VARCHAR( 255 ) NOT NULL AFTER `assigned_alert_body`,
  134. ADD `transfer_alert_body` TEXT NOT NULL AFTER `transfer_alert_subj`;
  135. -- Insert default text for the new messaage tpl + make templates active (all records are updated).
  136. UPDATE `%TABLE_PREFIX%email_template` SET updated=NOW() ,isactive=1, transfer_alert_subj='Ticket Transfer #%ticket - %dept',transfer_alert_body='%staff,\r\n\r\nTicket #%ticket has been transferred to %dept department.\r\n\r\n----------------------\r\n\r\n%note\r\n\r\n-------------------\r\n\r\nTo view/respond to the ticket, please login to the support ticket system.\r\n\r\n%url/scp/ticket.php?id=%id\r\n\r\n- Your friendly Customer Support System - powered by osTicket.';
  137. ALTER TABLE `%TABLE_PREFIX%help_topic`
  138. ADD ispublic TINYINT(1) UNSIGNED NOT NULL DEFAULT '1' AFTER isactive,
  139. ADD notes TEXT NULL DEFAULT NULL AFTER topic,
  140. ADD staff_id INT UNSIGNED NOT NULL DEFAULT '0' AFTER dept_id,
  141. ADD team_id INT UNSIGNED NOT NULL DEFAULT '0' AFTER staff_id,
  142. ADD sla_id INT UNSIGNED NOT NULL DEFAULT '0' AFTER team_id,
  143. ADD INDEX ( staff_id , team_id ),
  144. ADD INDEX ( sla_id );
  145. ALTER TABLE `%TABLE_PREFIX%email`
  146. ADD mail_archivefolder VARCHAR(255) NULL AFTER mail_fetchmax,
  147. ADD notes TEXT NULL DEFAULT NULL AFTER smtp_auth,
  148. ADD smtp_spoofing TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' AFTER smtp_auth;
  149. ALTER TABLE `%TABLE_PREFIX%api_key`
  150. ADD notes TEXT NULL DEFAULT NULL AFTER apikey,
  151. ADD UNIQUE (apikey);
  152. ALTER TABLE `%TABLE_PREFIX%ticket`
  153. ADD sla_id INT UNSIGNED NOT NULL DEFAULT '0' AFTER dept_id,
  154. ADD INDEX ( sla_id );
  155. DROP TABLE IF EXISTS `%TABLE_PREFIX%email_filter`;
  156. CREATE TABLE `%TABLE_PREFIX%email_filter` (
  157. `id` int(11) unsigned NOT NULL auto_increment,
  158. `execorder` int(10) unsigned NOT NULL default '99',
  159. `isactive` tinyint(1) unsigned NOT NULL default '1',
  160. `match_all_rules` tinyint(1) unsigned NOT NULL default '0',
  161. `stop_onmatch` tinyint(1) unsigned NOT NULL default '0',
  162. `reject_email` tinyint(1) unsigned NOT NULL default '0',
  163. `use_replyto_email` tinyint(1) unsigned NOT NULL default '0',
  164. `disable_autoresponder` tinyint(1) unsigned NOT NULL default '0',
  165. `email_id` int(10) unsigned NOT NULL default '0',
  166. `priority_id` int(10) unsigned NOT NULL default '0',
  167. `dept_id` int(10) unsigned NOT NULL default '0',
  168. `staff_id` int(10) unsigned NOT NULL default '0',
  169. `team_id` int(10) unsigned NOT NULL default '0',
  170. `sla_id` int(10) unsigned NOT NULL default '0',
  171. `name` varchar(32) NOT NULL default '',
  172. `notes` text,
  173. `created` datetime NOT NULL,
  174. `updated` datetime NOT NULL,
  175. PRIMARY KEY (`id`),
  176. KEY `email_id` (`email_id`)
  177. ) DEFAULT CHARSET=utf8;
  178. -- Copy banlist to a new email filter
  179. INSERT INTO `%TABLE_PREFIX%email_filter` (`execorder`, `isactive`,
  180. `match_all_rules`, `stop_onmatch`, `reject_email`, `use_replyto_email`,
  181. `disable_autoresponder`, `email_id`, `priority_id`, `dept_id`, `staff_id`,
  182. `team_id`, `sla_id`, `name`, `notes`) VALUES
  183. (99, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 'SYSTEM BAN LIST',
  184. 'Internal list for email banning. Do not remove');
  185. DROP TABLE IF EXISTS `%TABLE_PREFIX%email_filter_rule`;
  186. CREATE TABLE `%TABLE_PREFIX%email_filter_rule` (
  187. `id` int(11) unsigned NOT NULL auto_increment,
  188. `filter_id` int(10) unsigned NOT NULL default '0',
  189. `what` enum('name','email','subject','body','header') NOT NULL,
  190. `how` enum('equal','not_equal','contains','dn_contain') NOT NULL,
  191. `val` varchar(255) NOT NULL,
  192. `isactive` tinyint( 1 ) UNSIGNED NOT NULL DEFAULT '1',
  193. `notes` tinytext NOT NULL,
  194. `created` datetime NOT NULL,
  195. `updated` datetime NOT NULL,
  196. PRIMARY KEY (`id`),
  197. KEY `filter_id` (`filter_id`),
  198. UNIQUE `filter` (`filter_id`, `what`, `how`, `val`)
  199. ) DEFAULT CHARSET=utf8;
  200. -- SYSTEM BAN LIST was the first filter created, with ID of '1'
  201. INSERT INTO `%TABLE_PREFIX%email_filter_rule` (`filter_id`, `what`, `how`, `val`)
  202. SELECT LAST_INSERT_ID(), 'email', 'equal', email FROM `%TABLE_PREFIX%email_banlist`;
  203. -- Create table session
  204. DROP TABLE IF EXISTS `%TABLE_PREFIX%session`;
  205. CREATE TABLE `%TABLE_PREFIX%session` (
  206. `session_id` varchar(32) collate utf8_unicode_ci NOT NULL default '',
  207. `session_data` longtext collate utf8_unicode_ci,
  208. `session_expire` datetime default NULL,
  209. `session_updated` datetime default NULL,
  210. `user_id` int(10) unsigned NOT NULL default '0',
  211. `user_ip` varchar(32) collate utf8_unicode_ci NOT NULL,
  212. `user_agent` varchar(255) collate utf8_unicode_ci NOT NULL,
  213. PRIMARY KEY (`session_id`),
  214. KEY `updated` (`session_updated`),
  215. KEY `user_id` (`user_id`)
  216. ) DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
  217. -- Create tables for FAQ + attachments.
  218. DROP TABLE IF EXISTS `%TABLE_PREFIX%faq`;
  219. CREATE TABLE IF NOT EXISTS `%TABLE_PREFIX%faq` (
  220. `faq_id` int(10) unsigned NOT NULL auto_increment,
  221. `category_id` int(10) unsigned NOT NULL default '0',
  222. `ispublished` tinyint(1) unsigned NOT NULL default '0',
  223. `question` varchar(255) NOT NULL,
  224. `answer` text NOT NULL,
  225. `keywords` tinytext,
  226. `notes` text,
  227. `created` date NOT NULL,
  228. `updated` date NOT NULL,
  229. PRIMARY KEY (`faq_id`),
  230. UNIQUE KEY `question` (`question`),
  231. KEY `category_id` (`category_id`),
  232. KEY `ispublished` (`ispublished`)
  233. ) DEFAULT CHARSET=utf8;
  234. DROP TABLE IF EXISTS `%TABLE_PREFIX%faq_attachment`;
  235. CREATE TABLE IF NOT EXISTS `%TABLE_PREFIX%faq_attachment` (
  236. `faq_id` int(10) unsigned NOT NULL,
  237. `file_id` int(10) unsigned NOT NULL,
  238. PRIMARY KEY (`faq_id`,`file_id`)
  239. ) DEFAULT CHARSET=utf8;
  240. -- Add support for attachments to canned responses
  241. DROP TABLE IF EXISTS `%TABLE_PREFIX%canned_attachment`;
  242. CREATE TABLE IF NOT EXISTS `%TABLE_PREFIX%canned_attachment` (
  243. `canned_id` int(10) unsigned NOT NULL,
  244. `file_id` int(10) unsigned NOT NULL,
  245. PRIMARY KEY (`canned_id`,`file_id`)
  246. ) DEFAULT CHARSET=utf8;
  247. -- Rename kb_premade to canned_response
  248. ALTER TABLE `%TABLE_PREFIX%kb_premade`
  249. CHANGE `premade_id` `canned_id` int(10) unsigned NOT NULL auto_increment,
  250. CHANGE `title` `title` VARCHAR( 255 ) NOT NULL DEFAULT '',
  251. CHANGE `answer` `response` TEXT NOT NULL,
  252. ADD `notes` TEXT NOT NULL AFTER `response`,
  253. DROP INDEX `title`;
  254. DROP TABLE IF EXISTS `%TABLE_PREFIX%canned_response`;
  255. ALTER TABLE `%TABLE_PREFIX%kb_premade` RENAME TO `%TABLE_PREFIX%canned_response`;
  256. DROP TABLE IF EXISTS `%TABLE_PREFIX%faq_category`;
  257. CREATE TABLE IF NOT EXISTS `%TABLE_PREFIX%faq_category` (
  258. `category_id` int(10) unsigned NOT NULL auto_increment,
  259. `ispublic` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '0',
  260. `name` varchar(125) default NULL,
  261. `description` TEXT NOT NULL,
  262. `notes` tinytext NOT NULL,
  263. `created` date NOT NULL,
  264. `updated` date NOT NULL,
  265. PRIMARY KEY (`category_id`),
  266. KEY (`ispublic`)
  267. ) DEFAULT CHARSET=utf8;
  268. DROP TABLE IF EXISTS `%TABLE_PREFIX%faq_topic`;
  269. CREATE TABLE IF NOT EXISTS `%TABLE_PREFIX%faq_topic` (
  270. `faq_id` int(10) unsigned NOT NULL,
  271. `topic_id` int(10) unsigned NOT NULL,
  272. PRIMARY KEY (`faq_id`,`topic_id`)
  273. ) DEFAULT CHARSET=utf8;
  274. UPDATE `%TABLE_PREFIX%config`
  275. SET `schema_signature`='7be60a8432e44989e782d5914ef784d2';