can't we all just get along (with RT 3.8.7)?
[freeside.git] / rt / etc / schema.Pg
1 ------------------------------------------------------------------
2 -- My2Pg 1.23 translated dump
3 --
4 ------------------------------------------------------------------
5
6
7
8 --
9 -- Sequences for table ATTACHMENTS
10 --
11
12 CREATE SEQUENCE attachments_id_seq;
13
14 -- {{{ Attachments
15
16 CREATE TABLE Attachments (
17   id INTEGER DEFAULT nextval('attachments_id_seq'),
18   TransactionId integer NOT NULL  ,
19   Parent integer NOT NULL DEFAULT 0  ,
20   MessageId varchar(160) NULL  ,
21   Subject varchar(255) NULL  ,
22   Filename varchar(255) NULL  ,
23   ContentType varchar(80) NULL  ,
24   ContentEncoding varchar(80) NULL  ,
25   Content text NULL  ,
26   Headers text NULL  ,
27   Creator integer NOT NULL DEFAULT 0  ,
28   Created TIMESTAMP NULL  ,
29   PRIMARY KEY (id)
30
31 );
32
33 CREATE INDEX Attachments1 ON Attachments (Parent) ;
34 CREATE INDEX Attachments2 ON Attachments (TransactionId) ;
35 CREATE INDEX Attachments3 ON Attachments (Parent, TransactionId) ;
36 -- }}}
37
38 -- {{{ Queues
39
40
41 --
42 -- Sequences for table QUEUES
43 --
44
45 CREATE SEQUENCE queues_id_seq;
46
47 CREATE TABLE Queues (
48   id INTEGER DEFAULT nextval('queues_id_seq'),
49   Name varchar(200) NOT NULL  ,
50   Description varchar(255) NULL  ,
51   CorrespondAddress varchar(120) NULL  ,
52   CommentAddress varchar(120) NULL  ,
53   InitialPriority integer NOT NULL DEFAULT 0  ,
54   FinalPriority integer NOT NULL DEFAULT 0  ,
55   DefaultDueIn integer NOT NULL DEFAULT 0  ,
56   Creator integer NOT NULL DEFAULT 0  ,
57   Created TIMESTAMP NULL  ,
58   LastUpdatedBy integer NOT NULL DEFAULT 0  ,
59   LastUpdated TIMESTAMP NULL  ,
60   Disabled integer NOT NULL DEFAULT 0 ,
61   PRIMARY KEY (id)
62
63 );
64 CREATE UNIQUE INDEX Queues1 ON Queues (Name) ;
65
66 -- }}}
67
68 -- {{{ Links
69
70
71
72 --
73 -- Sequences for table LINKS
74 --
75
76 CREATE SEQUENCE links_id_seq;
77
78 CREATE TABLE Links (
79   id INTEGER DEFAULT nextval('links_id_seq'),
80   Base varchar(240) NULL  ,
81   Target varchar(240) NULL  ,
82   Type varchar(20) NOT NULL  ,
83   LocalTarget integer NOT NULL DEFAULT 0  ,
84   LocalBase integer NOT NULL DEFAULT 0  ,
85   LastUpdatedBy integer NOT NULL DEFAULT 0  ,
86   LastUpdated TIMESTAMP NULL  ,
87   Creator integer NOT NULL DEFAULT 0  ,
88   Created TIMESTAMP NULL  ,
89   PRIMARY KEY (id)
90
91 );
92 CREATE UNIQUE INDEX Links1 ON Links (Base, Target, Type) ;
93 CREATE INDEX Links4 ON Links(Type,LocalBase);
94
95 -- }}}
96
97 -- {{{ Principals
98
99
100
101 --
102 -- Sequences for table PRINCIPALS
103 --
104
105 CREATE SEQUENCE principals_id_seq;
106
107 CREATE TABLE Principals (
108         id INTEGER DEFAULT nextval('principals_id_seq') not null,
109         PrincipalType VARCHAR(16) not null,
110         ObjectId integer, 
111         Disabled integer NOT NULL DEFAULT 0 ,
112         PRIMARY KEY (id)
113
114 );
115
116 CREATE INDEX Principals2 ON Principals (ObjectId);
117
118
119 -- }}}
120
121 -- {{{ Groups
122
123
124
125 --
126 -- Sequences for table GROUPS
127 --
128
129 CREATE SEQUENCE groups_id_seq;
130
131 CREATE TABLE Groups (
132   id INTEGER DEFAULT nextval('groups_id_seq'),
133   Name varchar(200) NULL  ,
134   Description varchar(255) NULL  ,
135   Domain varchar(64),
136   Type varchar(64),
137   Instance integer,
138   PRIMARY KEY (id)
139
140 );
141 CREATE UNIQUE INDEX Groups1 ON Groups (Domain,Instance,Type,id, Name);
142 CREATE INDEX Groups2 On Groups  (Type, Instance, Domain);
143
144
145 -- }}}
146
147 -- {{{ ScripConditions
148
149
150
151 --
152 -- Sequences for table SCRIPCONDITIONS
153 --
154
155 CREATE SEQUENCE scripconditions_id_seq;
156
157 CREATE TABLE ScripConditions (
158   id INTEGER DEFAULT nextval('scripconditions_id_seq'),
159   Name varchar(200) NULL  ,
160   Description varchar(255) NULL  ,
161   ExecModule varchar(60) NULL  ,
162   Argument varchar(255) NULL  ,
163   ApplicableTransTypes varchar(60) NULL  ,
164
165   Creator integer NOT NULL DEFAULT 0  ,
166   Created TIMESTAMP NULL  ,
167   LastUpdatedBy integer NOT NULL DEFAULT 0  ,
168   LastUpdated TIMESTAMP NULL  ,
169   PRIMARY KEY (id)
170
171 );
172
173 -- }}}
174
175 -- {{{ Transactions
176
177
178 --
179 -- Sequences for table TRANSACTIONS
180 --
181
182 CREATE SEQUENCE transactions_id_seq;
183
184 CREATE TABLE Transactions (
185   id INTEGER DEFAULT nextval('transactions_id_seq'),
186   ObjectType varchar(255) NOT NULL  ,
187   ObjectId integer NOT NULL DEFAULT 0  ,
188   TimeTaken integer NOT NULL DEFAULT 0  ,
189   Type varchar(20) NULL  ,
190   Field varchar(40) NULL  ,
191   OldValue varchar(255) NULL  ,
192   NewValue varchar(255) NULL  ,
193   ReferenceType varchar(255) NULL,
194   OldReference integer NULL  ,
195   NewReference integer NULL  ,
196   Data varchar(255) NULL  ,
197
198   Creator integer NOT NULL DEFAULT 0  ,
199   Created TIMESTAMP NULL  ,
200   PRIMARY KEY (id)
201
202 );
203 CREATE INDEX Transactions1 ON Transactions (ObjectType, ObjectId);
204
205 -- }}}
206
207 -- {{{ Scrips 
208
209
210
211 --
212 -- Sequences for table SCRIPS
213 --
214
215 CREATE SEQUENCE scrips_id_seq;
216
217 CREATE TABLE Scrips (
218   id INTEGER DEFAULT nextval('scrips_id_seq'),
219   Description varchar(255),
220   ScripCondition integer NOT NULL DEFAULT 0  ,
221   ScripAction integer NOT NULL DEFAULT 0  ,
222   ConditionRules text NULL  ,
223   ActionRules text NULL  ,
224   CustomIsApplicableCode text NULL  ,
225   CustomPrepareCode text NULL  ,
226   CustomCommitCode text NULL  ,
227   Stage varchar(32) NULL  ,
228   Queue integer NOT NULL DEFAULT 0  ,
229   Template integer NOT NULL DEFAULT 0  ,
230   Creator integer NOT NULL DEFAULT 0  ,
231   Created TIMESTAMP NULL  ,
232   LastUpdatedBy integer NOT NULL DEFAULT 0  ,
233   LastUpdated TIMESTAMP NULL  ,
234   PRIMARY KEY (id)
235
236 );
237
238 -- }}}
239
240 -- {{{ ACL
241
242
243 --
244 -- Sequences for table ACL
245 --
246
247 CREATE SEQUENCE acl_id_seq;
248
249 CREATE TABLE ACL (
250   id INTEGER DEFAULT nextval('acl_id_seq'),
251   PrincipalType varchar(25) NOT NULL, 
252
253   PrincipalId integer NOT NULL  , 
254   RightName varchar(25) NOT NULL  ,
255   ObjectType varchar(25) NOT NULL  ,
256   ObjectId integer NOT NULL DEFAULT 0,
257   DelegatedBy integer NOT NULL DEFAULT 0, 
258   DelegatedFrom integer NOT NULL DEFAULT 0, 
259   PRIMARY KEY (id)
260
261 );
262
263 CREATE INDEX  ACL1 on ACL(RightName, ObjectType, ObjectId,PrincipalType,PrincipalId);
264
265
266 -- }}}
267
268 -- {{{ GroupMembers 
269
270
271
272 --
273 -- Sequences for table GROUPMEMBERS
274 --
275
276 CREATE SEQUENCE groupmembers_id_seq;
277
278 CREATE TABLE GroupMembers (
279   id INTEGER DEFAULT nextval('groupmembers_id_seq'),
280   GroupId integer NOT NULL DEFAULT 0,
281   MemberId integer NOT NULL DEFAULT 0,  
282   PRIMARY KEY (id)
283
284 );
285
286 CREATE UNIQUE INDEX GroupMembers1 ON GroupMembers(GroupId, MemberId);
287
288 -- }}}
289
290 -- {{{ GroupMembersCache
291
292
293
294 --
295 -- Sequences for table CACHEDGROUPMEMBERS
296 --
297
298 CREATE SEQUENCE cachedgroupmembers_id_seq;
299
300 CREATE TABLE CachedGroupMembers (
301         id int DEFAULT nextval('cachedgroupmembers_id_seq'),
302         GroupId int, 
303         MemberId int, 
304         Via int, 
305         ImmediateParentId int, 
306         Disabled integer NOT NULL DEFAULT 0 , 
307         PRIMARY KEY (id)
308
309 );
310
311 CREATE INDEX CachedGroupMembers2 on CachedGroupMembers (MemberId);
312 CREATE INDEX CachedGroupMembers3 on CachedGroupMembers (GroupId);
313 CREATE INDEX DisGrouMem  on CachedGroupMembers (GroupId,MemberId,Disabled); 
314
315 -- }}}
316
317 -- {{{ Users
318
319
320
321 --
322 -- Sequences for table USERS
323 --
324
325 CREATE SEQUENCE users_id_seq;
326
327 CREATE TABLE Users (
328   id INTEGER DEFAULT nextval('users_id_seq'),
329   Name varchar(200) NOT NULL  ,
330   Password varchar(40) NULL  ,
331   Comments text NULL  ,
332   Signature text NULL  ,
333   EmailAddress varchar(120) NULL  ,
334   FreeformContactInfo text NULL  ,
335   Organization varchar(200) NULL  ,
336   RealName varchar(120) NULL  ,
337   NickName varchar(16) NULL  ,
338   Lang varchar(16) NULL  ,
339   EmailEncoding varchar(16) NULL  ,
340   WebEncoding varchar(16) NULL  ,
341   ExternalContactInfoId varchar(100) NULL  ,
342   ContactInfoSystem varchar(30) NULL  ,
343   ExternalAuthId varchar(100) NULL  ,
344   AuthSystem varchar(30) NULL  ,
345   Gecos varchar(16) NULL  ,
346   HomePhone varchar(30) NULL  ,
347   WorkPhone varchar(30) NULL  ,
348   MobilePhone varchar(30) NULL  ,
349   PagerPhone varchar(30) NULL  ,
350   Address1 varchar(200) NULL  ,
351   Address2 varchar(200) NULL  ,
352   City varchar(100) NULL  ,
353   State varchar(100) NULL  ,
354   Zip varchar(16) NULL  ,
355   Country varchar(50) NULL  ,
356   Timezone varchar(50) NULL  ,
357   PGPKey text NULL,
358
359   Creator integer NOT NULL DEFAULT 0  ,
360   Created TIMESTAMP NULL  ,
361   LastUpdatedBy integer NOT NULL DEFAULT 0  ,
362   LastUpdated TIMESTAMP NULL  ,
363   PRIMARY KEY (id)
364
365 );
366
367
368 CREATE UNIQUE INDEX Users1 ON Users (Name) ;
369 CREATE INDEX Users3 ON Users (id, EmailAddress);
370 CREATE INDEX Users4 ON Users (EmailAddress);
371
372
373 -- }}}
374
375 -- {{{ Tickets
376
377
378
379 --
380 -- Sequences for table TICKETS
381 --
382
383 CREATE SEQUENCE tickets_id_seq;
384
385 CREATE TABLE Tickets (
386   id INTEGER DEFAULT nextval('tickets_id_seq'),
387   EffectiveId integer NOT NULL DEFAULT 0  ,
388   Queue integer NOT NULL DEFAULT 0  ,
389   Type varchar(16) NULL  ,
390   IssueStatement integer NOT NULL DEFAULT 0  ,
391   Resolution integer NOT NULL DEFAULT 0  ,
392   Owner integer NOT NULL DEFAULT 0  ,
393   Subject varchar(200) NULL DEFAULT '[no subject]' ,
394   InitialPriority integer NOT NULL DEFAULT 0  ,
395   FinalPriority integer NOT NULL DEFAULT 0  ,
396   Priority integer NOT NULL DEFAULT 0  ,
397   TimeEstimated integer NOT NULL DEFAULT 0  ,
398   TimeWorked integer NOT NULL DEFAULT 0  ,
399   Status varchar(10) NULL  ,
400   TimeLeft integer NOT NULL DEFAULT 0  ,
401   Told TIMESTAMP NULL  ,
402   Starts TIMESTAMP NULL  ,
403   Started TIMESTAMP NULL  ,
404   Due TIMESTAMP NULL  ,
405   Resolved TIMESTAMP NULL  ,
406
407
408   LastUpdatedBy integer NOT NULL DEFAULT 0  ,
409   LastUpdated TIMESTAMP NULL  ,
410   Creator integer NOT NULL DEFAULT 0  ,
411   Created TIMESTAMP NULL  ,
412   Disabled integer NOT NULL DEFAULT 0 ,
413   PRIMARY KEY (id)
414
415 );
416
417 CREATE INDEX Tickets1 ON Tickets (Queue, Status) ;
418 CREATE INDEX Tickets2 ON Tickets (Owner) ;
419 CREATE INDEX Tickets3 ON Tickets (EffectiveId) ;
420 CREATE INDEX Tickets4 ON Tickets (id, Status) ;
421 CREATE INDEX Tickets5 ON Tickets (id, EffectiveId) ;
422
423 -- }}}
424
425 -- {{{ ScripActions
426
427
428
429 --
430 -- Sequences for table SCRIPACTIONS
431 --
432
433 CREATE SEQUENCE scripactions_id_seq;
434
435 CREATE TABLE ScripActions (
436   id INTEGER DEFAULT nextval('scripactions_id_seq'),
437   Name varchar(200) NULL  ,
438   Description varchar(255) NULL  ,
439   ExecModule varchar(60) NULL  ,
440   Argument varchar(255) NULL  ,
441   Creator integer NOT NULL DEFAULT 0  ,
442   Created TIMESTAMP NULL  ,
443   LastUpdatedBy integer NOT NULL DEFAULT 0  ,
444   LastUpdated TIMESTAMP NULL  ,
445   PRIMARY KEY (id)
446
447 );
448
449 -- }}}
450
451 -- {{{ Templates
452
453
454
455 --
456 -- Sequences for table TEMPLATES
457 --
458
459 CREATE SEQUENCE templates_id_seq;
460
461 CREATE TABLE Templates (
462   id INTEGER DEFAULT nextval('templates_id_seq'),
463   Queue integer NOT NULL DEFAULT 0 ,
464   Name varchar(200) NOT NULL  ,
465   Description varchar(255) NULL  ,
466   Type varchar(16) NULL  ,
467   Language varchar(16) NULL  ,
468   TranslationOf integer NOT NULL DEFAULT 0  ,
469   Content text NULL  ,
470   LastUpdated TIMESTAMP NULL  ,
471   LastUpdatedBy integer NOT NULL DEFAULT 0  ,
472   Creator integer NOT NULL DEFAULT 0  ,
473   Created TIMESTAMP NULL  ,
474   PRIMARY KEY (id)
475
476 );
477
478 -- }}}
479
480 -- {{{ ObjectCustomFieldValues 
481
482
483
484 --
485 -- Sequences for table TICKETCUSTOMFIELDVALUES
486 --
487
488 CREATE SEQUENCE objectcustomfieldvalues_id_s;
489
490 CREATE TABLE ObjectCustomFieldValues (
491   id INTEGER DEFAULT nextval('objectcustomfieldvalues_id_s'),
492   CustomField int NOT NULL  ,
493   ObjectType varchar(255) NULL  ,
494   ObjectId int NOT NULL  ,
495   SortOrder integer NOT NULL DEFAULT 0  ,
496
497   Content varchar(255) NULL  ,
498   LargeContent text NULL,
499   ContentType varchar(80) NULL,
500   ContentEncoding varchar(80) NULL  ,
501
502   Creator integer NOT NULL DEFAULT 0  ,
503   Created TIMESTAMP NULL  ,
504   LastUpdatedBy integer NOT NULL DEFAULT 0  ,
505   LastUpdated TIMESTAMP NULL  ,
506   Disabled integer NOT NULL DEFAULT 0 ,
507   PRIMARY KEY (id)
508
509 );
510
511 CREATE INDEX ObjectCustomFieldValues1 ON ObjectCustomFieldValues (CustomField,ObjectType,ObjectId,Content); 
512 CREATE INDEX ObjectCustomFieldValues2 ON ObjectCustomFieldValues (CustomField,ObjectType,ObjectId); 
513
514 -- }}}
515
516 -- {{{ CustomFields
517
518
519
520 --
521 -- Sequences for table CUSTOMFIELDS
522 --
523
524 CREATE SEQUENCE customfields_id_seq;
525
526 CREATE TABLE CustomFields (
527   id INTEGER DEFAULT nextval('customfields_id_seq'),
528   Name varchar(200) NULL  ,
529   Type varchar(200) NULL  ,
530   MaxValues integer NOT NULL DEFAULT 0  ,
531   Repeated integer NOT NULL DEFAULT 0 , 
532   Pattern varchar(65536) NULL  ,
533   LookupType varchar(255) NOT NULL  ,
534   Description varchar(255) NULL  ,
535   SortOrder integer NOT NULL DEFAULT 0  ,
536
537   Creator integer NOT NULL DEFAULT 0  ,
538   Created TIMESTAMP NULL  ,
539   LastUpdatedBy integer NOT NULL DEFAULT 0  ,
540   LastUpdated TIMESTAMP NULL  ,
541   Disabled integer NOT NULL DEFAULT 0 ,
542   PRIMARY KEY (id)
543
544 );
545
546 -- }}}
547
548 -- {{{ ObjectCustomFields 
549
550 CREATE SEQUENCE objectcustomfields_id_s;
551
552 CREATE TABLE ObjectCustomFields (
553   id INTEGER DEFAULT nextval('objectcustomfields_id_s'),
554   CustomField integer NOT NULL,
555   ObjectId integer NOT NULL,
556   SortOrder integer NOT NULL DEFAULT 0  ,
557
558   Creator integer NOT NULL DEFAULT 0  ,
559   Created TIMESTAMP NULL  ,
560   LastUpdatedBy integer NOT NULL DEFAULT 0  ,
561   LastUpdated TIMESTAMP NULL  ,
562   PRIMARY KEY (id)
563
564 );
565
566 -- }}}
567
568 -- {{{ CustomFieldValues 
569
570
571
572 --
573 -- Sequences for table CUSTOMFIELDVALUES
574 --
575
576 CREATE SEQUENCE customfieldvalues_id_seq;
577
578 CREATE TABLE CustomFieldValues (
579   id INTEGER DEFAULT nextval('customfieldvalues_id_seq'),
580   CustomField int NOT NULL  ,
581   Name varchar(200) NULL  ,
582   Description varchar(255) NULL  ,
583   SortOrder integer NOT NULL DEFAULT 0  ,
584
585   Creator integer NOT NULL DEFAULT 0  ,
586   Created TIMESTAMP NULL  ,
587   LastUpdatedBy integer NOT NULL DEFAULT 0  ,
588   LastUpdated TIMESTAMP NULL  ,
589   PRIMARY KEY (id)
590
591 );
592
593 CREATE INDEX CustomFieldValues1 ON CustomFieldValues (CustomField);
594
595 -- }}}
596
597
598 -- {{{ Attributes
599
600 CREATE SEQUENCE attributes_id_seq;
601
602 CREATE TABLE Attributes (
603   id INTEGER DEFAULT nextval('attributes_id_seq'),
604   Name varchar(255) NOT NULL  ,
605   Description varchar(255) NULL  ,
606   Content text,
607   ContentType varchar(16),
608   ObjectType varchar(64),
609   ObjectId integer, 
610   Creator integer NOT NULL DEFAULT 0  ,
611   Created TIMESTAMP NULL  ,
612   LastUpdatedBy integer NOT NULL DEFAULT 0  ,
613   LastUpdated TIMESTAMP NULL  ,
614   PRIMARY KEY (id)
615
616 );
617
618 CREATE INDEX Attributes1 on Attributes(Name);
619 CREATE INDEX Attributes2 on Attributes(ObjectType, ObjectId);
620
621 -- }}}
622
623 -- {{{ Sessions
624
625 -- sessions is used by Apache::Session to keep sessions in the database.
626 -- We should have a reaper script somewhere.
627
628 CREATE TABLE sessions (
629     id char(32) NOT NULL,
630     a_session bytea,
631     LastUpdated TIMESTAMP not null default current_timestamp,
632     PRIMARY KEY (id)
633
634 );
635
636 -- }}}
637