Skip to content
Snippets Groups Projects
c00511c7-7be60a84.patch.sql 14 KiB
Newer Older
  • Learn to ignore specific revisions
  • Peter Rotich's avatar
    Peter Rotich committed
    /**
    
    Peter Rotich's avatar
    Peter Rotich committed
     * @version v1.7
     *
    
    Peter Rotich's avatar
    Peter Rotich committed
     * @schema c00511c7c1db65c0cfad04b4842afc57
     */
    
    
    Jared Hancock's avatar
    Jared Hancock committed
    -- Add a table to contain the attachment file contents
    DROP TABLE IF EXISTS `%TABLE_PREFIX%file`;
    CREATE TABLE `%TABLE_PREFIX%file` (
      `id` int(11) NOT NULL auto_increment,
      `type` varchar(255) NOT NULL default '',
      `size` varchar(25) NOT NULL default '',
      `hash` varchar(125) NOT NULL,
      `name` varchar(255) NOT NULL default '',
      `filedata` longblob NOT NULL,
      `created` datetime NOT NULL,
      PRIMARY KEY  (`id`),
      KEY `hash` (`hash`)
    
    Jared Hancock's avatar
    Jared Hancock committed
    
    -- update ticket attachments ref. table.
    ALTER TABLE `%TABLE_PREFIX%ticket_attachment`
        CHANGE `ref_type` `ref_type` ENUM( 'M', 'R', 'N' ) NOT NULL DEFAULT 'M',
        ADD `file_id` INT UNSIGNED NOT NULL DEFAULT '0' AFTER `ticket_id`,
        ADD INDEX ( `file_id` );
    
    -- Add Team ID and 'API' as a valid ticket source
    ALTER TABLE `%TABLE_PREFIX%ticket`
        ADD `team_id` INT UNSIGNED NOT NULL DEFAULT '0' AFTER `staff_id`,
        ADD INDEX ( `team_id` ),
        CHANGE `source` `source` ENUM(
            'Web', 'Email', 'Phone', 'API', 'Other') NOT NULL DEFAULT 'Other';
    
    -- Add table for ticket history (statistics) tracking
    
    DROP TABLE IF EXISTS `%TABLE_PREFIX%ticket_event`;
    CREATE TABLE `%TABLE_PREFIX%ticket_event` (
    
    Jared Hancock's avatar
    Jared Hancock committed
      `ticket_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,
    
    Jared Hancock's avatar
    Jared Hancock committed
      `staff` varchar(255) NOT NULL default 'SYSTEM',
      `timestamp` datetime NOT NULL,
      KEY `ticket_state` (`ticket_id`, `state`, `timestamp`),
      KEY `ticket_stats` (`timestamp`, `state`)
    
    ALTER TABLE `%TABLE_PREFIX%config`
    
    Jared Hancock's avatar
    Jared Hancock committed
        ADD `passwd_reset_period` INT UNSIGNED NOT NULL DEFAULT '0' AFTER `staff_session_timeout`,
        ADD `default_timezone_id` INT UNSIGNED NOT NULL DEFAULT '0' AFTER `default_template_id`,
        ADD `default_sla_id` INT UNSIGNED NOT NULL DEFAULT '0' AFTER `default_dept_id`,
        CHANGE `spoof_default_smtp` `allow_email_spoofing` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
        CHANGE `enable_mail_fetch` `enable_mail_polling` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
        ADD `max_user_file_uploads` TINYINT UNSIGNED NOT NULL AFTER `max_file_size`,
        ADD `max_staff_file_uploads` TINYINT UNSIGNED NOT NULL AFTER `max_user_file_uploads`,
        ADD `assigned_alert_active` TINYINT(1) UNSIGNED NOT NULL DEFAULT '1' AFTER `overdue_alert_dept_members`,
        ADD `assigned_alert_staff` TINYINT(1) UNSIGNED NOT NULL DEFAULT '1' AFTER `assigned_alert_active`,
    
        ADD `assigned_alert_team_lead` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' AFTER `assigned_alert_staff`,
    
    Jared Hancock's avatar
    Jared Hancock committed
        ADD `assigned_alert_team_members` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' AFTER `assigned_alert_team_lead`,
        ADD `transfer_alert_active` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '0' AFTER `note_alert_dept_manager` ,
        ADD `transfer_alert_assigned` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '0' AFTER `transfer_alert_active` ,
        ADD `transfer_alert_dept_manager` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '1' AFTER `transfer_alert_assigned` ,
        ADD `transfer_alert_dept_members` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '0' AFTER `transfer_alert_dept_manager`,
        ADD `send_sys_errors` TINYINT(1) UNSIGNED NOT NULL DEFAULT '1' AFTER `enable_email_piping`,
    
        ADD `enable_kb` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' AFTER `use_email_priority`,
    
    Jared Hancock's avatar
    Jared Hancock committed
        ADD `enable_premade` TINYINT(1) UNSIGNED NOT NULL DEFAULT '1' AFTER `enable_kb`,
        ADD `show_related_tickets` TINYINT(1) UNSIGNED NOT NULL DEFAULT '1' AFTER `auto_assign_reopened_tickets`,
        ADD `schema_signature` CHAR( 32 ) NOT NULL AFTER `ostversion`;
    
    
    -- copy over timezone id - based on offset.
    UPDATE `%TABLE_PREFIX%config` SET default_timezone_id =
        (SELECT id FROM `%TABLE_PREFIX%timezone` WHERE offset = `%TABLE_PREFIX%config`.timezone_offset);
    
    
    ALTER TABLE `%TABLE_PREFIX%staff`
    
    Jared Hancock's avatar
    Jared Hancock committed
        ADD `passwdreset` DATETIME NULL DEFAULT NULL AFTER `lastlogin`;
    
    
    Peter Rotich's avatar
    Peter Rotich committed
    DROP TABLE IF EXISTS `%TABLE_PREFIX%sla`;
    CREATE TABLE IF NOT EXISTS `%TABLE_PREFIX%sla` (
    
    Jared Hancock's avatar
    Jared Hancock committed
        `id` int(11) unsigned NOT NULL auto_increment,
        `isactive` tinyint(1) unsigned NOT NULL default '1',
        `enable_priority_escalation` tinyint(1) unsigned NOT NULL default '1',
        `disable_overdue_alerts` tinyint(1) unsigned NOT NULL default '0',
        `grace_period` int(10) unsigned NOT NULL default '0',
        `name` varchar(64) NOT NULL default '',
        `notes` text,
        `created` datetime NOT NULL,
        `updated` datetime NOT NULL,
        PRIMARY KEY  (`id`),
        UNIQUE KEY `name` (`name`)
    
    Jared Hancock's avatar
    Jared Hancock committed
    -- Create a default SLA
    INSERT INTO `%TABLE_PREFIX%sla` (`isactive`, `enable_priority_escalation`,
    
            `disable_overdue_alerts`, `grace_period`, `name`, `notes`, `created`, `updated`)
        VALUES (1, 1, 0, 48, 'Default SLA', NULL, NOW(), NOW());
    
    Jared Hancock's avatar
    Jared Hancock committed
    
    -- Create a TEAM table
    CREATE TABLE IF NOT EXISTS `%TABLE_PREFIX%team` (
        `team_id` int(10) unsigned NOT NULL auto_increment,
        `lead_id` int(10) unsigned NOT NULL default '0',
        `isenabled` tinyint(1) unsigned NOT NULL default '1',
        `noalerts` tinyint(1) unsigned NOT NULL default '0',
        `name` varchar(125) NOT NULL default '',
        `notes` text,
        `created` datetime NOT NULL,
        `updated` datetime NOT NULL,
        PRIMARY KEY  (`team_id`),
        UNIQUE KEY `name` (`name`),
        KEY `isnabled` (`isenabled`),
        KEY `lead_id` (`lead_id`)
    
    Jared Hancock's avatar
    Jared Hancock committed
    
    -- Create a default TEAM
    
    Peter Rotich's avatar
    Peter Rotich committed
    INSERT INTO `%TABLE_PREFIX%team` (`lead_id`, `isenabled`, `noalerts`, `name`, `notes`, `created`, `updated`)
        VALUES (0, 1, 0, 'Level I Support', '', NOW(), NOW());
    
    DROP TABLE IF EXISTS `%TABLE_PREFIX%team_member`;
    CREATE TABLE IF NOT EXISTS `%TABLE_PREFIX%team_member` (
      `team_id` int(10) unsigned NOT NULL default '0',
      `staff_id` int(10) unsigned NOT NULL,
      `updated` datetime NOT NULL,
      PRIMARY KEY  (`team_id`,`staff_id`)
    
    Jared Hancock's avatar
    Jared Hancock committed
    
    ALTER TABLE `%TABLE_PREFIX%department`
        ADD sla_id INT UNSIGNED NOT NULL DEFAULT '0' AFTER tpl_id;
    
    ALTER TABLE `%TABLE_PREFIX%staff`
        ADD `notes` TEXT NULL DEFAULT NULL AFTER `signature`,
        ADD `assigned_only` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' AFTER `onvacation`,
        ADD `show_assigned_tickets` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' AFTER `assigned_only`,
        ADD `timezone_id` INT UNSIGNED NOT NULL DEFAULT '0' AFTER `dept_id`,
        ADD `default_signature_type` ENUM( 'none', 'mine', 'dept' ) NOT NULL DEFAULT 'none' AFTER `auto_refresh_rate`;
    
    -- Copy over time zone offet to tz_id
    
    UPDATE `%TABLE_PREFIX%staff` SET timezone_id =
    
    Jared Hancock's avatar
    Jared Hancock committed
        (SELECT id FROM `%TABLE_PREFIX%timezone` WHERE offset = `%TABLE_PREFIX%staff`.timezone_offset);
    
    ALTER TABLE `%TABLE_PREFIX%groups`
        CHANGE `can_manage_kb` `can_manage_premade` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
        ADD `can_manage_faq` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' AFTER `can_manage_premade`,
    
    Peter Rotich's avatar
    Peter Rotich committed
        ADD `can_assign_tickets` TINYINT( 1 ) UNSIGNED NOT NULL default '1' AFTER `can_close_tickets`,
        ADD notes TEXT NULL AFTER can_manage_faq;
    
    Jared Hancock's avatar
    Jared Hancock committed
    
    -- Add new columns to the templates table
    ALTER TABLE `%TABLE_PREFIX%email_template`
        ADD `isactive` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' AFTER `cfg_id`,
        ADD `transfer_alert_subj` VARCHAR( 255 ) NOT NULL AFTER `assigned_alert_body`,
        ADD `transfer_alert_body` TEXT NOT NULL AFTER `transfer_alert_subj`;
    
    
    -- Insert default text for the new messaage tpl + make templates active (all records are updated).
    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.';
    
    Jared Hancock's avatar
    Jared Hancock committed
    
    ALTER TABLE `%TABLE_PREFIX%help_topic`
        ADD ispublic TINYINT(1) UNSIGNED NOT NULL DEFAULT '1' AFTER isactive,
        ADD notes TEXT NULL DEFAULT NULL AFTER topic,
        ADD staff_id INT UNSIGNED NOT NULL DEFAULT '0' AFTER dept_id,
        ADD team_id INT UNSIGNED NOT NULL DEFAULT '0' AFTER staff_id,
        ADD sla_id INT UNSIGNED NOT NULL DEFAULT '0' AFTER team_id,
        ADD INDEX ( staff_id , team_id ),
    
        ADD INDEX ( sla_id );
    
    Jared Hancock's avatar
    Jared Hancock committed
    
    ALTER TABLE `%TABLE_PREFIX%email`
        ADD mail_archivefolder VARCHAR(255) NULL AFTER mail_fetchmax,
        ADD notes TEXT NULL DEFAULT NULL AFTER smtp_auth,
        ADD smtp_spoofing TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' AFTER smtp_auth;
    
    
    ALTER TABLE `%TABLE_PREFIX%api_key`
    
    Jared Hancock's avatar
    Jared Hancock committed
        ADD notes TEXT NULL DEFAULT NULL AFTER apikey,
        ADD UNIQUE (apikey);
    
    ALTER TABLE `%TABLE_PREFIX%ticket`
        ADD sla_id INT UNSIGNED NOT NULL DEFAULT '0' AFTER dept_id,
        ADD INDEX ( sla_id );
    
    DROP TABLE IF EXISTS `%TABLE_PREFIX%email_filter`;
    CREATE TABLE `%TABLE_PREFIX%email_filter` (
      `id` int(11) unsigned NOT NULL auto_increment,
      `execorder` int(10) unsigned NOT NULL default '99',
      `isactive` tinyint(1) unsigned NOT NULL default '1',
      `match_all_rules` tinyint(1) unsigned NOT NULL default '0',
      `stop_onmatch` tinyint(1) unsigned NOT NULL default '0',
      `reject_email` tinyint(1) unsigned NOT NULL default '0',
      `use_replyto_email` tinyint(1) unsigned NOT NULL default '0',
      `disable_autoresponder` tinyint(1) unsigned NOT NULL default '0',
      `email_id` int(10) unsigned NOT NULL default '0',
      `priority_id` int(10) unsigned NOT NULL default '0',
      `dept_id` int(10) unsigned NOT NULL default '0',
      `staff_id` int(10) unsigned NOT NULL default '0',
      `team_id` int(10) unsigned NOT NULL default '0',
      `sla_id` int(10) unsigned NOT NULL default '0',
      `name` varchar(32) NOT NULL default '',
      `notes` text,
      `created` datetime NOT NULL,
      `updated` datetime NOT NULL,
      PRIMARY KEY  (`id`),
      KEY `email_id` (`email_id`)
    
    Jared Hancock's avatar
    Jared Hancock committed
    
    -- Copy banlist to a new email filter
    
    INSERT INTO `%TABLE_PREFIX%email_filter` (`execorder`, `isactive`,
    
    Jared Hancock's avatar
    Jared Hancock committed
        `match_all_rules`, `stop_onmatch`, `reject_email`, `use_replyto_email`,
        `disable_autoresponder`, `email_id`, `priority_id`, `dept_id`, `staff_id`,
        `team_id`, `sla_id`, `name`, `notes`) VALUES
    
        (99, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 'SYSTEM BAN LIST',
    
    Jared Hancock's avatar
    Jared Hancock committed
            'Internal list for email banning. Do not remove');
    
    DROP TABLE IF EXISTS `%TABLE_PREFIX%email_filter_rule`;
    CREATE TABLE `%TABLE_PREFIX%email_filter_rule` (
      `id` int(11) unsigned NOT NULL auto_increment,
      `filter_id` int(10) unsigned NOT NULL default '0',
      `what` enum('name','email','subject','body','header') NOT NULL,
      `how` enum('equal','not_equal','contains','dn_contain') NOT NULL,
      `val` varchar(255) NOT NULL,
    
    Peter Rotich's avatar
    Peter Rotich committed
      `isactive` tinyint( 1 ) UNSIGNED NOT NULL DEFAULT '1',
    
    Jared Hancock's avatar
    Jared Hancock committed
      `notes` tinytext NOT NULL,
      `created` datetime NOT NULL,
      `updated` datetime NOT NULL,
      PRIMARY KEY  (`id`),
      KEY `filter_id` (`filter_id`),
    
      UNIQUE `filter` (`filter_id`, `what`, `how`, `val`)
    
    Jared Hancock's avatar
    Jared Hancock committed
    
    -- SYSTEM BAN LIST was the first filter created, with ID of '1'
    
    INSERT INTO `%TABLE_PREFIX%email_filter_rule` (`filter_id`, `what`, `how`, `val`)
    
        SELECT LAST_INSERT_ID(), 'email', 'equal', email FROM `%TABLE_PREFIX%email_banlist`;
    
    Jared Hancock's avatar
    Jared Hancock committed
    
    -- Create table session
    DROP TABLE IF EXISTS `%TABLE_PREFIX%session`;
    CREATE TABLE `%TABLE_PREFIX%session` (
      `session_id` varchar(32) collate utf8_unicode_ci NOT NULL default '',
      `session_data` longtext collate utf8_unicode_ci,
      `session_expire` datetime default NULL,
      `session_updated` datetime default NULL,
      `user_id` int(10) unsigned NOT NULL default '0',
      `user_ip` varchar(32) collate utf8_unicode_ci NOT NULL,
      `user_agent` varchar(255) collate utf8_unicode_ci NOT NULL,
      PRIMARY KEY  (`session_id`),
      KEY `updated` (`session_updated`),
      KEY `user_id` (`user_id`)
    
    ) DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    
    Jared Hancock's avatar
    Jared Hancock committed
    
    -- Create tables for FAQ + attachments.
    DROP TABLE IF EXISTS `%TABLE_PREFIX%faq`;
    CREATE TABLE IF NOT EXISTS `%TABLE_PREFIX%faq` (
      `faq_id` int(10) unsigned NOT NULL auto_increment,
      `category_id` int(10) unsigned NOT NULL default '0',
      `ispublished` tinyint(1) unsigned NOT NULL default '0',
      `question` varchar(255) NOT NULL,
      `answer` text NOT NULL,
      `keywords` tinytext,
      `notes` text,
      `created` date NOT NULL,
      `updated` date NOT NULL,
      PRIMARY KEY  (`faq_id`),
      UNIQUE KEY `question` (`question`),
      KEY `category_id` (`category_id`),
    
      KEY `ispublished` (`ispublished`)
    
    Jared Hancock's avatar
    Jared Hancock committed
    
    DROP TABLE IF EXISTS `%TABLE_PREFIX%faq_attachment`;
    CREATE TABLE IF NOT EXISTS `%TABLE_PREFIX%faq_attachment` (
      `faq_id` int(10) unsigned NOT NULL,
      `file_id` int(10) unsigned NOT NULL,
      PRIMARY KEY  (`faq_id`,`file_id`)
    
    Jared Hancock's avatar
    Jared Hancock committed
    
    -- Add support for attachments to canned responses
    DROP TABLE IF EXISTS `%TABLE_PREFIX%canned_attachment`;
    CREATE TABLE IF NOT EXISTS `%TABLE_PREFIX%canned_attachment` (
      `canned_id` int(10) unsigned NOT NULL,
      `file_id` int(10) unsigned NOT NULL,
      PRIMARY KEY  (`canned_id`,`file_id`)
    
    Jared Hancock's avatar
    Jared Hancock committed
    
    -- Rename kb_premade to canned_response
    ALTER TABLE `%TABLE_PREFIX%kb_premade`
      CHANGE `premade_id` `canned_id` int(10) unsigned NOT NULL auto_increment,
      CHANGE `title` `title` VARCHAR( 255 ) NOT NULL DEFAULT '',
    
    Peter Rotich's avatar
    Peter Rotich committed
      CHANGE `answer` `response` TEXT NOT NULL,
      ADD `notes` TEXT NOT NULL AFTER `response`,
    
      DROP INDEX `title`;
    
    Jared Hancock's avatar
    Jared Hancock committed
    ALTER TABLE `%TABLE_PREFIX%kb_premade` RENAME TO `%TABLE_PREFIX%canned_response`;
    
    DROP TABLE IF EXISTS `%TABLE_PREFIX%faq_category`;
    CREATE TABLE IF NOT EXISTS `%TABLE_PREFIX%faq_category` (
      `category_id` int(10) unsigned NOT NULL auto_increment,
      `ispublic` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '0',
      `name` varchar(125) default NULL,
      `description` TEXT NOT NULL,
      `notes` tinytext NOT NULL,
      `created` date NOT NULL,
      `updated` date NOT NULL,
      PRIMARY KEY  (`category_id`),
      KEY (`ispublic`)
    
    Jared Hancock's avatar
    Jared Hancock committed
    
    DROP TABLE IF EXISTS `%TABLE_PREFIX%faq_topic`;
    CREATE TABLE IF NOT EXISTS `%TABLE_PREFIX%faq_topic` (
      `faq_id` int(10) unsigned NOT NULL,
      `topic_id` int(10) unsigned NOT NULL,
      PRIMARY KEY  (`faq_id`,`topic_id`)
    
    Peter Rotich's avatar
    Peter Rotich committed
    
    
    Peter Rotich's avatar
    Peter Rotich committed
    UPDATE `%TABLE_PREFIX%config`
    
        SET `schema_signature`='7be60a8432e44989e782d5914ef784d2';