1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289
|
-- --
-- Update an existing OTRS database from 0.5 to 1.0
-- Copyright (C) 2001-2006 OTRS GmbH, http://otrs.org/
-- --
-- $Id: DBUpdate-to-1.0.postgresql.sql,v 1.5 2006/10/03 14:36:02 mh Exp $
-- --
--
-- usage: cat DBUpdate-to-1.0.postgresql.sql | psql otrs
--
-- --
-- --
-- 1.0 upgrate
-- --
-- add ticket_index index
CREATE TABLE ticket_lock_index
(
ticket_id bigint NOT NULL
);
CREATE INDEX index_lock_ticket_id ON ticket_lock_index (ticket_id);
-- standard_attachment
CREATE TABLE standard_attachment
(
id serial,
name varchar (150) NOT NULL,
content_type varchar (150) NOT NULL,
content text NOT NULL,
filename varchar (250) NOT NULL,
comment varchar (150),
valid_id smallint NOT NULL,
create_time timestamp(0) NOT NULL,
create_by integer NOT NULL,
change_time timestamp(0) NOT NULL,
change_by integer NOT NULL,
PRIMARY KEY(id),
UNIQUE (name)
);
-- standard_response_attachment
CREATE TABLE standard_response_attachment
(
id serial,
standard_attachment_id integer NOT NULL,
standard_response_id integer NOT NULL,
create_time timestamp(0) NOT NULL,
create_by integer NOT NULL,
change_time timestamp(0) NOT NULL,
change_by integer NOT NULL,
PRIMARY KEY(id)
);
-- pop3_account
CREATE TABLE pop3_account
(
id serial,
login varchar (200) NOT NULL,
pw varchar (200) NOT NULL,
host varchar (200) NOT NULL,
queue_id integer NOT NULL,
trusted smallint NOT NULL,
comment varchar (250),
valid_id smallint NOT NULL,
create_time timestamp(0) NOT NULL,
create_by integer NOT NULL,
change_time timestamp(0) NOT NULL,
change_by integer NOT NULL,
PRIMARY KEY(id),
UNIQUE (login)
);
-- update states
DELETE FROM ticket_state WHERE name = 'waiting_for_closed+';
DELETE FROM ticket_state WHERE name = 'waiting_for_closed-';
DELETE FROM ticket_state WHERE name = 'waiting_for_customer';
DELETE FROM ticket_state WHERE name = 'waiting_for_info';
DELETE FROM ticket_state WHERE name = 'waiting_for_reminder';
DELETE FROM ticket_history_type WHERE name = 'WatingForClose-';
DELETE FROM ticket_history_type WHERE name = 'WatingForClose+';
DELETE FROM ticket_history_type WHERE name = 'WatingForReminder';
INSERT INTO ticket_history_type
(name, valid_id, create_by, create_time, change_by, change_time)
VALUES
('SetPendingTime', 1, 1, current_timestamp, 1, current_timestamp);
INSERT INTO ticket_history_type
(name, valid_id, create_by, create_time, change_by, change_time)
VALUES
('SetPending', 1, 1, current_timestamp, 1, current_timestamp);
INSERT INTO ticket_state (name, comment, valid_id, create_by, create_time, change_by, change_time)
VALUES ('pending reminder', 'ticket is pending for agent reminder', 1, 1, current_timestamp, 1, current_timestamp);
INSERT INTO ticket_state (name, comment, valid_id, create_by, create_time, change_by, change_time)
VALUES ('pending auto close+', 'ticket is pending for automatic close', 1, 1, current_timestamp, 1, current_timestamp);
INSERT INTO ticket_state (name, comment, valid_id, create_by, create_time, change_by, change_time)
VALUES ('pending auto close-', 'ticket is pending for automatic close', 1, 1, current_timestamp, 1, current_timestamp);
-- update typo
UPDATE ticket_state SET name = 'closed successful', comment = 'ticket is closed succsessful' WHERE name = 'closed succsessful';
UPDATE ticket_state SET name = 'closed unsuccessful', comment = 'ticket is closed unsuccsessful' WHERE name = 'closed unsuccsessful';
UPDATE ticket_history_type SET name = 'Close successful' WHERE name = 'Close succsessful';
UPDATE ticket_history_type SET name = 'Close unsuccessful' WHERE name = 'Close unsuccsessful';
-- table for db loop protection backend module
CREATE TABLE ticket_loop_protection
(
sent_to VARCHAR (250) NOT NULL,
sent_date VARCHAR (150) NOT NULL
);
CREATE INDEX index_ticket_loop_protection_to ON ticket_loop_protection (sent_to);
CREATE INDEX index_ticket_loop_protection_da ON ticket_loop_protection (sent_date);
-- charset for bulgarian translation
ALTER TABLE charset RENAME TO charset_old;
DROP SEQUENCE charset_id_seq;
DROP INDEX charset_pkey;
DROP INDEX charset_name_key;
CREATE TABLE charset
(
id serial,
name varchar (200) NOT NULL,
charset varchar (50) NOT NULL,
comment varchar (250),
valid_id smallint NOT NULL,
create_time timestamp(0) NOT NULL,
create_by integer NOT NULL,
change_time timestamp(0) NOT NULL,
change_by integer NOT NULL,
PRIMARY KEY(id),
UNIQUE (name)
);
INSERT INTO charset (
name,
charset,
comment,
valid_id,
create_time,
create_by,
change_time,
change_by)
SELECT
name,
charset,
comment,
valid_id,
create_time,
create_by,
change_time,
change_by
FROM charset_old ;
DROP TABLE charset_old;
INSERT INTO charset
(name, charset, comment, valid_id, create_by, create_time, change_by, change_time)
VALUES
('Cyrillic Charset (Windows-1251)', 'Windows-1251', 'Windows-1251 - cp1251', 1, 1, current_timestamp, 1, current_timestamp);
-- table for attachments in db
CREATE TABLE article_attachment
(
id serial,
article_id BIGINT NOT NULL,
filename VARCHAR (250),
content_type VARCHAR (250),
content text,
create_time timestamp(0) NOT NULL,
create_by INTEGER NOT NULL,
change_time timestamp(0) NOT NULL,
change_by INTEGER NOT NULL,
PRIMARY KEY(id)
);
create INDEX index_article_attachment_article_id ON article_attachment (article_id);
-- table for plain emails in db
CREATE TABLE article_plain
(
id serial,
article_id BIGINT NOT NULL,
body text,
create_time timestamp(0) NOT NULL,
create_by INTEGER NOT NULL,
change_time timestamp(0) NOT NULL,
change_by INTEGER NOT NULL,
PRIMARY KEY(id)
);
create INDEX index_article_plain_article_id ON article_plain (article_id);
-- customer preferences
ALTER TABLE customer_preferences RENAME TO customer_preferences_old;
CREATE TABLE customer_preferences
(
user_id varchar (250) NOT NULL,
preferences_key varchar (150) NOT NULL,
preferences_value varchar (250)
);
INSERT INTO customer_preferences (
user_id,
preferences_key,
preferences_value)
SELECT
user_id,
preferences_key,
preferences_value
FROM customer_preferences_old;
DROP TABLE customer_preferences_old;
-- --
-- 0.5 BETA 8 upgrate
-- --
-- add ticket_index index
create INDEX index_ticket_id ON ticket_index (ticket_id);
-- customer_user
CREATE TABLE customer_user
(
id serial,
login varchar (80) NOT NULL,
email varchar (120) NOT NULL,
customer_id VARCHAR (120) NOT NULL,
pw varchar (20) NOT NULL,
salutation varchar (20),
first_name varchar (40) NOT NULL,
last_name varchar (40) NOT NULL,
comment varchar (120) NOT NULL,
valid_id smallint NOT NULL,
create_time timestamp(0) NOT NULL,
create_by integer NOT NULL,
change_time timestamp(0) NOT NULL,
change_by integer NOT NULL,
PRIMARY KEY(id),
UNIQUE (login)
);
-- customer preferences
CREATE TABLE customer_preferences
(
user_id integer NOT NULL,
preferences_key varchar (100) NOT NULL,
preferences_value varchar (250)
);
create INDEX index_user_id ON customer_preferences (user_id);
-- add ticket_history index
create INDEX ticket_history_create_time ON ticket_history (create_time);
-- --
-- BETA 7 upgrate
-- --
CREATE TABLE ticket_index
(
ticket_id bigint NOT NULL,
queue_id integer NOT NULL,
queue varchar (70) NOT NULL,
group_id integer NOT NULL,
s_lock varchar (70) NOT NULL,
s_state varchar (70) NOT NULL,
create_time_unix bigint NOT NULL
);
-- new time accounting table
CREATE TABLE time_accounting
(
id serial8,
ticket_id bigint NOT NULL,
article_id bigint,
time_unit smallint NOT NULL,
create_time timestamp(0) NOT NULL,
create_by integer NOT NULL,
change_time timestamp(0) NOT NULL,
change_by integer NOT NULL,
PRIMARY KEY(id)
);
create INDEX time_accounting_ticket_id ON time_accounting (ticket_id);
-- new ticket history type
INSERT INTO ticket_history_type
(name, valid_id, create_by, create_time, change_by, change_time)
VALUES
('TimeAccounting', 1, 1, current_timestamp, 1, current_timestamp);
-- new article types
INSERT INTO article_type
(name, valid_id, create_by, create_time, change_by, change_time)
VALUES
('email-notification-ext', 1, 1, current_timestamp, 1, current_timestamp);
INSERT INTO article_type
(name, valid_id, create_by, create_time, change_by, change_time)
VALUES
('email-notification-int', 1, 1, current_timestamp, 1, current_timestamp);
-- new ticket history types
INSERT INTO ticket_history_type
(name, valid_id, create_by, create_time, change_by, change_time)
VALUES
('Forward', 1, 1, current_timestamp, 1, current_timestamp);
INSERT INTO ticket_history_type
(name, valid_id, create_by, create_time, change_by, change_time)
VALUES
('Bounce', 1, 1, current_timestamp, 1, current_timestamp);
-- content_type to display the right charset and it is also used
-- for utf-8 support.
ALTER TABLE article ADD a_content_type varchar (100);
|