import rt 2.0.14
[freeside.git] / rt / etc / schema.Pg
1 CREATE TABLE KeywordSelects (
2   id serial NOT NULL  ,
3   Name varchar(255)   ,
4   Keyword integer   ,
5   Single integer   ,
6   Depth integer NOT NULL DEFAULT 0 ,
7   ObjectType varchar(32) NOT NULL  ,
8   ObjectField varchar(32)   ,
9   ObjectValue varchar(255)   ,
10   Disabled int2 NOT NULL DEFAULT 0 ,
11   PRIMARY KEY (id)
12 );
13 CREATE INDEX KeywordSelects1 ON KeywordSelects (Keyword);
14 CREATE INDEX KeywordSelects2 ON KeywordSelects (ObjectType, ObjectField, ObjectValue);
15 CREATE TABLE Attachments (
16   id serial NOT NULL  ,
17   TransactionId integer NOT NULL  ,
18   Parent integer   ,
19   MessageId varchar(160)   ,
20   Subject varchar(255)   ,
21   Filename varchar(255)   ,
22   ContentType varchar(80)   ,
23   ContentEncoding varchar(80)   ,
24   Content TEXT   ,
25   Headers TEXT   ,
26   Creator integer   ,
27   Created timestamp   ,
28   PRIMARY KEY (id)
29 );
30 CREATE INDEX Attachments1 ON Attachments (Parent);
31 CREATE INDEX Attachments2 ON Attachments (TransactionId);
32 CREATE INDEX Attachments3 ON Attachments (Parent, TransactionId);
33 CREATE TABLE Queues (
34   id serial NOT NULL  ,
35   Name varchar(120) NOT NULL  ,
36   Description varchar(120)   ,
37   CorrespondAddress varchar(120)   ,
38   CommentAddress varchar(120)   ,
39   InitialPriority integer   ,
40   FinalPriority integer   ,
41   DefaultDueIn integer   ,
42   Creator integer   ,
43   Created timestamp   ,
44   LastUpdatedBy integer   ,
45   LastUpdated timestamp   ,
46   Disabled int2 NOT NULL DEFAULT 0 ,
47   PRIMARY KEY (id)
48 );
49 CREATE UNIQUE INDEX Queues1 ON Queues (Name);
50 CREATE TABLE Links (
51   id serial NOT NULL  ,
52   Base varchar(240)   ,
53   Target varchar(240)   ,
54   Type varchar(20) NOT NULL  ,
55   LocalTarget integer   ,
56   LocalBase integer   ,
57   LastUpdatedBy integer   ,
58   LastUpdated timestamp   ,
59   Creator integer   ,
60   Created timestamp   ,
61   PRIMARY KEY (id)
62 );
63 CREATE UNIQUE INDEX Links1 ON Links (Base, Target, Type);
64 CREATE TABLE Groups (
65   id serial NOT NULL  ,
66   Name varchar(16)   ,
67   Description varchar(64)   ,
68   Pseudo integer NOT NULL DEFAULT 0 ,
69   PRIMARY KEY (id)
70 );
71 CREATE UNIQUE INDEX Groups1 ON Groups (Name);
72 CREATE TABLE Watchers (
73   id serial NOT NULL  ,
74   Type varchar(16)   ,
75   Scope varchar(16)   ,
76   Value integer   ,
77   Email varchar(255)   ,
78   Quiet integer   ,
79   Owner integer   ,
80   Creator integer   ,
81   Created timestamp   ,
82   LastUpdatedBy integer   ,
83   LastUpdated timestamp   ,
84   PRIMARY KEY (id)
85 );
86 CREATE INDEX Watchers1 ON Watchers (Scope, Value, Type, Owner);
87 CREATE TABLE ScripConditions (
88   id serial NOT NULL  ,
89   Name varchar(255)   ,
90   Description varchar(255)   ,
91   ExecModule varchar(60)   ,
92   Argument varchar(255)   ,
93   ApplicableTransTypes varchar(60)   ,
94   Creator integer   ,
95   Created timestamp   ,
96   LastUpdatedBy integer   ,
97   LastUpdated timestamp   ,
98   PRIMARY KEY (id)
99 );
100 CREATE TABLE Transactions (
101   id serial NOT NULL  ,
102   EffectiveTicket integer   ,
103   Ticket integer   ,
104   TimeTaken integer   ,
105   Type varchar(20)   ,
106   Field varchar(40)   ,
107   OldValue varchar(255)   ,
108   NewValue varchar(255)   ,
109   Data varchar(100)   ,
110   Creator integer   ,
111   Created timestamp   ,
112   PRIMARY KEY (id)
113 );
114 CREATE INDEX Transactions1 ON Transactions (Ticket);
115 CREATE INDEX Transactions2 ON Transactions (EffectiveTicket);
116 CREATE TABLE Scrips (
117   id serial NOT NULL  ,
118   ScripCondition integer   ,
119   ScripAction integer   ,
120   Stage varchar(32)   ,
121   Queue integer   ,
122   Template integer   ,
123   Creator integer   ,
124   Created timestamp   ,
125   LastUpdatedBy integer   ,
126   LastUpdated timestamp   ,
127   PRIMARY KEY (id)
128 );
129 CREATE TABLE ACL (
130   id serial NOT NULL  ,
131   PrincipalId integer   ,
132   PrincipalType varchar(25)   ,
133   RightName varchar(25)   ,
134   RightScope varchar(25)   ,
135   RightAppliesTo integer   ,
136   PRIMARY KEY (id)
137 );
138 CREATE INDEX ACL1 ON ACL (RightScope, PrincipalId);
139 CREATE INDEX ACL2 ON ACL (RightScope, RightAppliesTo, RightName, PrincipalType, PrincipalId);
140 CREATE TABLE GroupMembers (
141   id serial NOT NULL  ,
142   GroupId integer   ,
143   UserId integer   ,
144   PRIMARY KEY (id)
145 );
146 CREATE UNIQUE INDEX GroupMembers1 ON GroupMembers (GroupId, UserId);
147 CREATE TABLE ObjectKeywords (
148   id serial NOT NULL  ,
149   Keyword integer NOT NULL  ,
150   KeywordSelect integer NOT NULL  ,
151   ObjectType varchar(32) NOT NULL  ,
152   ObjectId integer NOT NULL  ,
153   PRIMARY KEY (id)
154 );
155 CREATE UNIQUE INDEX ObjectKeywords1 ON ObjectKeywords (ObjectId, ObjectType, KeywordSelect, Keyword);
156 CREATE INDEX ObjectKeywords2 ON ObjectKeywords (ObjectId, ObjectType);
157 CREATE INDEX ObjectKeywords3 ON ObjectKeywords (Keyword);
158 CREATE TABLE Keywords (
159   id serial NOT NULL  ,
160   Name varchar(255) NOT NULL  ,
161   Description varchar(255)   ,
162   Parent integer   ,
163   Disabled int2 NOT NULL DEFAULT 0 ,
164   PRIMARY KEY (id)
165 );
166 CREATE UNIQUE INDEX Keywords1 ON Keywords (Name, Parent);
167 CREATE INDEX Keywords2 ON Keywords (Name);
168 CREATE INDEX Keywords3 ON Keywords (Parent);
169 CREATE TABLE Users (
170   id serial NOT NULL  ,
171   Name varchar(120) NOT NULL  ,
172   Password varchar(40)   ,
173   Comments TEXT   ,
174   Signature TEXT   ,
175   EmailAddress varchar(120)   ,
176   FreeformContactInfo TEXT   ,
177   Organization varchar(200)   ,
178   Privileged integer   ,
179   RealName varchar(120)   ,
180   Nickname varchar(16)   ,
181   Lang varchar(16)   ,
182   EmailEncoding varchar(16)   ,
183   WebEncoding varchar(16)   ,
184   ExternalContactInfoId varchar(100)   ,
185   ContactInfoSystem varchar(30)   ,
186   ExternalAuthId varchar(100)   ,
187   AuthSystem varchar(30)   ,
188   Gecos varchar(16)   ,
189   HomePhone varchar(30)   ,
190   WorkPhone varchar(30)   ,
191   MobilePhone varchar(30)   ,
192   PagerPhone varchar(30)   ,
193   Address1 varchar(200)   ,
194   Address2 varchar(200)   ,
195   City varchar(100)   ,
196   State varchar(100)   ,
197   Zip varchar(16)   ,
198   Country varchar(50)   ,
199   Creator integer   ,
200   Created timestamp   ,
201   LastUpdatedBy integer   ,
202   LastUpdated timestamp   ,
203   Disabled int2 NOT NULL DEFAULT 0 ,
204   PRIMARY KEY (id)
205 );
206 CREATE UNIQUE INDEX Users1 ON Users (Name);
207 CREATE INDEX Users3 ON Users (id, EmailAddress);
208 CREATE INDEX Users4 ON Users (EmailAddress);
209 CREATE TABLE Tickets (
210   id serial NOT NULL  ,
211   EffectiveId integer   ,
212   Queue integer   ,
213   Type varchar(16)   ,
214   IssueStatement integer   ,
215   Resolution integer   ,
216   Owner integer   ,
217   Subject varchar(200)  DEFAULT '[no subject]' ,
218   InitialPriority integer   ,
219   FinalPriority integer   ,
220   Priority integer   ,
221   Status varchar(10)   ,
222   TimeWorked integer   ,
223   TimeLeft integer   ,
224   Told timestamp   ,
225   Starts timestamp   ,
226   Started timestamp   ,
227   Due timestamp   ,
228   Resolved timestamp   ,
229   LastUpdatedBy integer   ,
230   LastUpdated timestamp   ,
231   Creator integer   ,
232   Created timestamp   ,
233   Disabled int2 NOT NULL DEFAULT 0 ,
234   PRIMARY KEY (id)
235 );
236 CREATE INDEX Tickets1 ON Tickets (Queue, Status);
237 CREATE INDEX Tickets2 ON Tickets (Owner);
238 CREATE INDEX Tickets3 ON Tickets (EffectiveId);
239 CREATE INDEX Tickets4 ON Tickets (id, Status);
240 CREATE INDEX Tickets5 ON Tickets (id, EffectiveId);
241 CREATE TABLE ScripActions (
242   id serial NOT NULL  ,
243   Name varchar(255)   ,
244   Description varchar(255)   ,
245   ExecModule varchar(60)   ,
246   Argument varchar(255)   ,
247   Creator integer   ,
248   Created timestamp   ,
249   LastUpdatedBy integer   ,
250   LastUpdated timestamp   ,
251   PRIMARY KEY (id)
252 );
253 CREATE TABLE Templates (
254   id serial NOT NULL  ,
255   Queue integer NOT NULL DEFAULT 0 ,
256   Name varchar(40) NOT NULL  ,
257   Description varchar(120)   ,
258   Type varchar(16)   ,
259   Language varchar(16)   ,
260   TranslationOf integer   ,
261   Content TEXT   ,
262   LastUpdated timestamp   ,
263   LastUpdatedBy integer   ,
264   Creator integer   ,
265   Created timestamp   ,
266   PRIMARY KEY (id)
267 );