diff options
Diffstat (limited to 'rt/etc')
-rw-r--r-- | rt/etc/acl.Oracle | 12 | ||||
-rwxr-xr-x | rt/etc/acl.Pg | 38 | ||||
-rwxr-xr-x | rt/etc/acl.mysql | 3 | ||||
-rwxr-xr-x | rt/etc/schema.mysql | 88 |
4 files changed, 97 insertions, 44 deletions
diff --git a/rt/etc/acl.Oracle b/rt/etc/acl.Oracle index c8667c031..ac29215c2 100644 --- a/rt/etc/acl.Oracle +++ b/rt/etc/acl.Oracle @@ -1,10 +1,10 @@ sub acl { return ( -"CREATE USER ${RT::DatabaseUser} identified by ${RT::DatabasePassword}". -"temporary tablespace TEMP" . -"default tablespace USERS" . -"quota unlimited on USERS;" , -"grant connect, resource to ${RT::DatabaseUser};", -"exit;"); +"CREATE USER ${RT::DatabaseUser} identified by ${RT::DatabasePassword} ". +"default tablespace USERS " . +"temporary tablespace TEMP " . +"quota unlimited on USERS" , +"grant connect, resource to ${RT::DatabaseUser}" +); } 1; diff --git a/rt/etc/acl.Pg b/rt/etc/acl.Pg index 16ea71b2d..fb625592d 100755 --- a/rt/etc/acl.Pg +++ b/rt/etc/acl.Pg @@ -7,38 +7,42 @@ sub acl { attachments_id_seq Attachments + Attributes + attributes_id_seq queues_id_seq - Queues + Queues links_id_seq - Links + Links principals_id_seq - Principals + Principals groups_id_seq - Groups + Groups scripconditions_id_seq - ScripConditions + ScripConditions transactions_id_seq - Transactions + Transactions scrips_id_seq - Scrips + Scrips acl_id_seq - ACL + ACL groupmembers_id_seq - GroupMembers + GroupMembers cachedgroupmembers_id_seq - CachedGroupMembers + CachedGroupMembers users_id_seq - Users + Users tickets_id_seq - Tickets + Tickets scripactions_id_seq - ScripActions + ScripActions templates_id_seq - Templates - ticketcustomfieldvalues_id_s - TicketCustomFieldValues + Templates + objectcustomfieldvalues_id_s + ObjectCustomFieldValues customfields_id_seq - CustomFields + CustomFields + objectcustomfields_id_s + ObjectCustomFields customfieldvalues_id_seq CustomFieldValues sessions diff --git a/rt/etc/acl.mysql b/rt/etc/acl.mysql index 0ecaa3b15..621ef121c 100755 --- a/rt/etc/acl.mysql +++ b/rt/etc/acl.mysql @@ -1,8 +1,9 @@ sub acl { +return () if !$RT::DatabaseUser or $RT::DatabaseUser eq 'root'; return ( "USE mysql;", "DELETE FROM user WHERE user = '${RT::DatabaseUser}';", "DELETE FROM db where db = '${RT::DatabaseName}';", -"GRANT SELECT,INSERT,CREATE,INDEX,UPDATE,DELETE ON ${RT::DatabaseName}.* TO ${RT::DatabaseUser}\@${RT::DatabaseRTHost} IDENTIFIED BY '${RT::DatabasePassword}';"); +"GRANT SELECT,INSERT,CREATE,INDEX,UPDATE,DELETE ON ${RT::DatabaseName}.* TO ${RT::DatabaseUser}\@'${RT::DatabaseRTHost}' IDENTIFIED BY '${RT::DatabasePassword}';"); } 1; diff --git a/rt/etc/schema.mysql b/rt/etc/schema.mysql index 46f8ec562..60f1abae2 100755 --- a/rt/etc/schema.mysql +++ b/rt/etc/schema.mysql @@ -16,7 +16,6 @@ CREATE TABLE Attachments ( PRIMARY KEY (id) ) TYPE=InnoDB; -CREATE INDEX Attachments1 ON Attachments (Parent) ; CREATE INDEX Attachments2 ON Attachments (TransactionId) ; CREATE INDEX Attachments3 ON Attachments (Parent, TransactionId) ; # }}} @@ -62,6 +61,7 @@ CREATE TABLE Links ( CREATE UNIQUE INDEX Links1 ON Links (Base, Target, Type) ; CREATE INDEX Links2 ON Links (Base, Type) ; CREATE INDEX Links3 ON Links (Target, Type) ; +CREATE INDEX Links4 ON Links (Type,LocalBase); # }}} @@ -87,12 +87,12 @@ CREATE TABLE Groups ( Description varchar(255) NULL , Domain varchar(64), Type varchar(64), - Instance varchar(64), + Instance integer, PRIMARY KEY (id) ) TYPE=InnoDB; CREATE INDEX Groups1 ON Groups (Domain,Instance,Type,id); -CREATE INDEX Groups2 On Groups (Type, Instance, Domain); +CREATE INDEX Groups2 On Groups (Type, Instance); # }}} @@ -118,21 +118,23 @@ CREATE TABLE ScripConditions ( # {{{ Transactions CREATE TABLE Transactions ( id INTEGER NOT NULL AUTO_INCREMENT, - EffectiveTicket integer NOT NULL DEFAULT 0 , - Ticket integer NOT NULL DEFAULT 0 , + ObjectType varchar(64) NOT NULL, + ObjectId integer NOT NULL DEFAULT 0 , TimeTaken integer NOT NULL DEFAULT 0 , Type varchar(20) NULL , Field varchar(40) NULL , OldValue varchar(255) NULL , NewValue varchar(255) NULL , - Data varchar(100) NULL , + ReferenceType varchar(255) NULL, + OldReference integer NULL , + NewReference integer NULL , + Data varchar(255) NULL , Creator integer NOT NULL DEFAULT 0 , Created DATETIME NULL , PRIMARY KEY (id) ) TYPE=InnoDB; -CREATE INDEX Transactions1 ON Transactions (Ticket); -CREATE INDEX Transactions2 ON Transactions (EffectiveTicket); +CREATE INDEX Transactions1 ON Transactions (ObjectType, ObjectId); # }}} @@ -210,7 +212,6 @@ create table CachedGroupMembers ( ) TYPE=InnoDB; CREATE INDEX DisGrouMem on CachedGroupMembers (GroupId,MemberId,Disabled); -CREATE INDEX GrouMem on CachedGroupMembers (GroupId,MemberId); # }}} @@ -257,8 +258,6 @@ CREATE TABLE Users ( CREATE UNIQUE INDEX Users1 ON Users (Name) ; -CREATE INDEX Users2 ON Users (Name); -CREATE INDEX Users3 ON Users (id, EmailAddress); CREATE INDEX Users4 ON Users (EmailAddress); @@ -299,9 +298,6 @@ CREATE TABLE Tickets ( CREATE INDEX Tickets1 ON Tickets (Queue, Status) ; CREATE INDEX Tickets2 ON Tickets (Owner) ; -CREATE INDEX Tickets3 ON Tickets (EffectiveId) ; -CREATE INDEX Tickets4 ON Tickets (id, Status) ; -CREATE INDEX Tickets5 ON Tickets (id, EffectiveId) ; CREATE INDEX Tickets6 ON Tickets (EffectiveId, Type) ; # }}} @@ -343,21 +339,31 @@ CREATE TABLE Templates ( # }}} -# {{{ TicketCustomFieldValues +# {{{ ObjectCustomFieldValues -CREATE TABLE TicketCustomFieldValues ( +CREATE TABLE ObjectCustomFieldValues ( id INTEGER NOT NULL AUTO_INCREMENT, - Ticket int NOT NULL , CustomField int NOT NULL , + ObjectType varchar(255) NOT NULL, # Final target of the Object + ObjectId int NOT NULL , # New -- Replaces Ticket + SortOrder integer NOT NULL DEFAULT 0 , # New -- ordering for multiple values + Content varchar(255) NULL , + LargeContent LONGTEXT NULL, # New -- to hold 255+ strings + ContentType varchar(80) NULL, # New -- only text/* gets searched + ContentEncoding varchar(80) NULL , # New -- for binary Content Creator integer NOT NULL DEFAULT 0 , Created DATETIME NULL , LastUpdatedBy integer NOT NULL DEFAULT 0 , LastUpdated DATETIME NULL , + Disabled int2 NOT NULL DEFAULT 0 , # New -- whether the value was current PRIMARY KEY (id) ) TYPE=InnoDB; +CREATE INDEX ObjectCustomFieldValues1 ON ObjectCustomFieldValues (Content); +CREATE INDEX ObjectCustomFieldValues2 ON ObjectCustomFieldValues (CustomField,ObjectType,ObjectId); + # }}} # {{{ CustomFields @@ -365,10 +371,13 @@ CREATE TABLE TicketCustomFieldValues ( CREATE TABLE CustomFields ( id INTEGER NOT NULL AUTO_INCREMENT, Name varchar(200) NULL , - Type varchar(200) NULL , - Queue integer NOT NULL DEFAULT 0 , + Type varchar(200) NULL , # Changed -- 'Single' and 'Multiple' is moved out + MaxValues integer, # New -- was 'Single'(1) and 'Multiple'(0) + Pattern varchar(255) NULL , # New -- Must validate against this + Repeated int2 NOT NULL DEFAULT 0 , # New -- repeated table entry Description varchar(255) NULL , SortOrder integer NOT NULL DEFAULT 0 , + LookupType varchar(255) NOT NULL, Creator integer NOT NULL DEFAULT 0 , Created DATETIME NULL , @@ -378,8 +387,22 @@ CREATE TABLE CustomFields ( PRIMARY KEY (id) ) TYPE=InnoDB; -CREATE INDEX CustomFields1 on CustomFields (Disabled, Queue); +# }}} + +# {{{ ObjectCustomFields +CREATE TABLE ObjectCustomFields ( + id INTEGER NOT NULL AUTO_INCREMENT, + CustomField int NOT NULL , + ObjectId integer NOT NULL, + SortOrder integer NOT NULL DEFAULT 0 , + + Creator integer NOT NULL DEFAULT 0 , + Created DATETIME NULL , + LastUpdatedBy integer NOT NULL DEFAULT 0 , + LastUpdated DATETIME NULL , + PRIMARY KEY (id) +) TYPE=InnoDB; # }}} @@ -399,6 +422,31 @@ CREATE TABLE CustomFieldValues ( PRIMARY KEY (id) ) TYPE=InnoDB; +CREATE INDEX CustomFieldValues1 ON CustomFieldValues (CustomField); + +# }}} + + +# {{{ Attributes + +CREATE TABLE Attributes ( + id INTEGER NOT NULL AUTO_INCREMENT, + Name varchar(255) NULL , + Description varchar(255) NULL , + Content text, + ContentType varchar(16), + ObjectType varchar(64), + ObjectId integer, # foreign key to anything + Creator integer NOT NULL DEFAULT 0 , + Created DATETIME NULL , + LastUpdatedBy integer NOT NULL DEFAULT 0 , + LastUpdated DATETIME NULL , + PRIMARY KEY (id) +) TYPE=InnoDB; + +CREATE INDEX Attributes1 on Attributes(Name); +CREATE INDEX Attributes2 on Attributes(ObjectType, ObjectId); + # }}} # {{{ Sessions |