diff options
Diffstat (limited to 'rt/etc/schema.pm')
-rw-r--r-- | rt/etc/schema.pm | 349 |
1 files changed, 349 insertions, 0 deletions
diff --git a/rt/etc/schema.pm b/rt/etc/schema.pm new file mode 100644 index 000000000..44e143ecd --- /dev/null +++ b/rt/etc/schema.pm @@ -0,0 +1,349 @@ +# column, type, nullability, length, default, database-local + +my $gratuitous = { + +'Groups' => { + 'columns' => [ + 'id', 'serial', '', '', '', '', + 'Name', 'varchar', 'NULL', '16', '', '', + 'Description', 'varchar', 'NULL', '64', '', '', + 'Pseudo', 'integer', '', '', '0', '', + ], + 'primary_key' => 'id', + 'unique' => [ ['Name'] ], + 'index' => [ ], +}, + +'ACL' => { + 'columns' => [ + 'id', 'serial', '', '', '', '', + 'PrincipalId', 'integer', 'NULL', '', '', '', + 'PrincipalType', 'varchar', 'NULL', '25', '', '', + 'RightName', 'varchar', 'NULL', '25', '', '', + 'RightScope', 'varchar', 'NULL', '25', '', '', + 'RightAppliesTo', 'integer', 'NULL', '', '', '', + ], + 'primary_key' => 'id', + 'unique' => [ ], + 'index' => [ ['RightScope', 'PrincipalId'], + ['RightScope','RightAppliesTo','RightName','PrincipalType','PrincipalId'] ], +}, + +'Watchers' => { + 'columns' => [ + 'id', 'serial', '', '', '', '', + 'Type', 'varchar', 'NULL', '16', '', '', + 'Scope', 'varchar', 'NULL', '16', '', '', + 'Value', 'integer', 'NULL', '', '', '', + 'Email', 'varchar', 'NULL', '255', '', '', + 'Quiet', 'integer', 'NULL', '', '', '', + 'Owner', 'integer', 'NULL', '', '', '', + 'Creator', 'integer', 'NULL', '', '', '', + 'Created', 'timestamp', 'NULL', '', '', '', + 'LastUpdatedBy', 'integer', 'NULL', '', '', '', + 'LastUpdated', 'timestamp', 'NULL', '', '', '', + ], + 'primary_key' => 'id', + 'unique' => [ ], + 'index' => [ ['Scope','Value','Type','Owner'] ], +}, + +'Links' => { + 'columns' => [ + 'id', 'serial', '', '', '', '', + 'Base', 'varchar', 'NULL', '240', '', '', + 'Target', 'varchar', 'NULL', '240', '', '', + 'Type', 'varchar', '', '20', '', '', + 'LocalTarget', 'integer', 'NULL', '', '', '', + 'LocalBase', 'integer', 'NULL', '', '', '', + 'LastUpdatedBy', 'integer', 'NULL', '', '', '', + 'LastUpdated', 'timestamp', 'NULL', '', '', '', + 'Creator', 'integer', 'NULL', '', '', '', + 'Created', 'timestamp', 'NULL', '', '', '', + ], + 'primary_key' => 'id', + 'unique' => [ ['Base', 'Target', 'Type'] ], + 'index' => [ ], +}, + +'Users' => { + 'columns' => [ + 'id', 'serial', '', '', '', '', + 'Name', 'varchar', '', '120', '', '', + 'Password', 'varchar', 'NULL', '40', '', '', + 'Comments', 'blob', 'NULL', '', '', '', + 'Signature', 'blob', 'NULL', '', '', '', + 'EmailAddress', 'varchar', 'NULL', '120', '', '', + 'FreeformContactInfo', 'blob', 'NULL', '', '', '', + 'Organization', 'varchar', 'NULL', '200', '', '', + 'Privileged', 'integer', 'NULL', '', '', '', + 'RealName', 'varchar', 'NULL', '120', '', '', + 'Nickname', 'varchar', 'NULL', '16', '', '', + 'Lang', 'varchar', 'NULL', '16', '', '', + 'EmailEncoding', 'varchar', 'NULL', '16', '', '', + 'WebEncoding', 'varchar', 'NULL', '16', '', '', + 'ExternalContactInfoId', 'varchar', 'NULL', '100', '', '', + 'ContactInfoSystem', 'varchar', 'NULL', '30', '', '', + 'ExternalAuthId', 'varchar', 'NULL', '100', '', '', + 'AuthSystem', 'varchar', 'NULL', '30', '', '', + 'Gecos', 'varchar', 'NULL', '16', '', '', + 'HomePhone', 'varchar', 'NULL', '30', '', '', + 'WorkPhone', 'varchar', 'NULL', '30', '', '', + 'MobilePhone', 'varchar', 'NULL', '30', '', '', + 'PagerPhone', 'varchar', 'NULL', '30', '', '', + 'Address1', 'varchar', 'NULL', '200', '', '', + 'Address2', 'varchar', 'NULL', '200', '', '', + 'City', 'varchar', 'NULL', '100', '', '', + 'State', 'varchar', 'NULL', '100', '', '', + 'Zip', 'varchar', 'NULL', '16', '', '', + 'Country', 'varchar', 'NULL', '50', '', '', + 'Creator', 'integer', 'NULL', '', '', '', + 'Created', 'timestamp', 'NULL', '', '', '', + 'LastUpdatedBy', 'integer', 'NULL', '', '', '', + 'LastUpdated', 'timestamp', 'NULL', '', '', '', + 'Disabled', 'int2', '','','0','', + ], + 'primary_key' => 'id', + 'unique' => [ ['Name'] ], + 'index' => [ ['Name'], + ['id', 'EmailAddress'], + ['EmailAddress'] ], +}, + +'Tickets' => { + 'columns' => [ + 'id', 'serial', '', '', '', '', + 'EffectiveId', 'integer', 'NULL', '', '', '', + 'Queue', 'integer', 'NULL', '', '', '', + 'Type', 'varchar', 'NULL', '16', '', '', + 'IssueStatement', 'integer', 'NULL', '', '', '', + 'Resolution', 'integer', 'NULL', '', '', '', + 'Owner', 'integer', 'NULL', '', '', '', + 'Subject', 'varchar', 'NULL', '200', '[no subject]', '', + 'InitialPriority', 'integer', 'NULL', '', '', '', + 'FinalPriority', 'integer', 'NULL', '', '', '', + 'Priority', 'integer', 'NULL', '', '', '', + 'Status', 'varchar', 'NULL', '10', '', '', + 'TimeWorked', 'integer', 'NULL', '', '', '', + 'TimeLeft', 'integer', 'NULL', '', '', '', + 'Told', 'timestamp', 'NULL', '', '', '', + 'Starts', 'timestamp', 'NULL', '', '', '', + 'Started', 'timestamp', 'NULL', '', '', '', + 'Due', 'timestamp', 'NULL', '', '', '', + 'Resolved', 'timestamp', 'NULL', '', '', '', + 'LastUpdatedBy', 'integer', 'NULL', '', '', '', + 'LastUpdated', 'timestamp', 'NULL', '', '', '', + 'Creator', 'integer', 'NULL', '', '', '', + 'Created', 'timestamp', 'NULL', '', '', '', + 'Disabled', 'int2', '','','0','', + ], + 'primary_key' => 'id', + 'unique' => [ [] ], + 'index' => [ ['Queue', 'Status'], + ['Owner'], + ['EffectiveId'], + ['id', 'Status'], + ['id', 'EffectiveId'] ], +}, + +'GroupMembers' => { + 'columns' => [ + 'id', 'serial', '', '', '', '', + 'GroupId', 'integer', 'NULL', '', '', '', #foreign key, Groups::id + 'UserId', 'integer', 'NULL', '', '', '', #foreign key, Users::id + ], + 'primary_key' => 'id', + 'unique' => [ ['GroupId', 'UserId'] ], + 'index' => [ ], +}, + +'Queues' => { + 'columns' => [ + 'id', 'serial', '', '', '', '', + 'Name', 'varchar', '', '120', '', '', #Textual 'name' for this queue + 'Description', 'varchar', 'NULL', '120', '', '', #Textual descr. of this + #queue + 'CorrespondAddress', 'varchar', 'NULL', '120', '', '', + 'CommentAddress', 'varchar', 'NULL', '120', '', '', + 'InitialPriority', 'integer', 'NULL', '', '', '', + 'FinalPriority', 'integer', 'NULL', '', '', '', + 'DefaultDueIn', 'integer', 'NULL', '', '', '', + + 'Creator', 'integer', 'NULL', '', '', '', + 'Created', 'timestamp', 'NULL', '', '', '', + 'LastUpdatedBy', 'integer', 'NULL', '', '', '', + 'LastUpdated', 'timestamp', 'NULL', '', '', '', + 'Disabled', 'int2', '','','0','', + ], + 'primary_key' => 'id', + 'unique' => [ ['Name'] ], + 'index' => [ ], +}, + +'Transactions' => { + 'columns' => [ + 'id', 'serial', '', '', '', '', + 'EffectiveTicket', 'integer', 'NULL', '', '', '', + 'Ticket', 'integer', 'NULL', '', '', '', #Foreign key Ticket::id + 'TimeTaken', 'integer', 'NULL', '', '', '', #Time spent on this trans in min + 'Type', 'varchar', 'NULL', '20', '', '', + 'Field', 'varchar', 'NULL', '40', '', '', #If it's a "Set" transaction, what + #field was set. + 'OldValue', 'varchar', 'NULL', '255', '', '', + 'NewValue', 'varchar', 'NULL', '255', '', '', + 'Data', 'varchar', 'NULL', '100', '', '', + + + 'Creator', 'integer', 'NULL', '', '', '', + 'Created', 'timestamp', 'NULL', '', '', '', + + ], + 'primary_key' => 'id', + 'unique' => [ ], + 'index' => [ ['Ticket'], ['EffectiveTicket'] ], +}, + +'ScripActions' => { + 'columns' => [ + 'id', 'serial', '', '', '', '', + 'Name', 'varchar', 'NULL', '255', '', '', # Alias + 'Description', 'varchar', 'NULL', '255', '', '', #Textual description + 'ExecModule', 'varchar', 'NULL', '60', '', '', #This calles RT::Action::___ + 'Argument', 'varchar', 'NULL', '255', '', '', #We can pass a single argument + #to the scrip. sometimes, it's who to send mail to. + 'Creator', 'integer', 'NULL', '', '', '', + 'Created', 'timestamp', 'NULL', '', '', '', + 'LastUpdatedBy', 'integer', 'NULL', '', '', '', + 'LastUpdated', 'timestamp', 'NULL', '', '', '', + ], + 'primary_key' => 'id', + 'unique' => [ ], + 'index' => [ ], +}, + +'ScripConditions' => { + 'columns' => [ + 'id', 'serial', '', '', '', '', + 'Name', 'varchar', 'NULL', '255', '', '', # Alias + 'Description', 'varchar', 'NULL', '255', '', '', #Textual description + 'ExecModule', 'varchar', 'NULL', '60', '', '', #This calles RT::Condition:: + 'Argument', 'varchar', 'NULL', '255', '', '', #We can pass a single argument + #to the scrip. sometimes, it's who to send mail to. + 'ApplicableTransTypes', 'varchar', 'NULL', '60', '', '',#Transaction types this scrip + # acts on. comma or / delimited is just great. + 'Creator', 'integer', 'NULL', '', '', '', + 'Created', 'timestamp', 'NULL', '', '', '', + 'LastUpdatedBy', 'integer', 'NULL', '', '', '', + 'LastUpdated', 'timestamp', 'NULL', '', '', '', + ], + 'primary_key' => 'id', + 'unique' => [ ], + 'index' => [ ], +}, +'Scrips' => { + 'columns' => [ + 'id', 'serial', '', '', '', '', + 'ScripCondition', 'integer', 'NULL', '', '', '', #Foreign key ScripConditions::id + 'ScripAction', 'integer', 'NULL', '', '', '', #Foreign key ScripActions::id + 'Stage', 'varchar', 'NULL', '32','','', #What stage does this scrip + #Happen in. for now, everything is 'TransactionCreate', + 'Queue', 'integer', 'NULL', '', '', '', #Foreign key Queues::id + 'Template', 'integer', 'NULL', '', '', '', #Foreign key Templates::id + + 'Creator', 'integer', 'NULL', '', '', '', + 'Created', 'timestamp', 'NULL', '', '', '', + 'LastUpdatedBy', 'integer', 'NULL', '', '', '', + 'LastUpdated', 'timestamp', 'NULL', '', '', '', + ], + 'primary_key' => 'id', + 'unique' => [ ], + 'index' => [ ], +}, + +'Attachments' => { + 'columns' => [ + 'id', 'serial', '', '', '', '', + 'TransactionId', 'integer', '', '', '', '', #Foreign key Transactions::Id + 'Parent', 'integer', 'NULL', '', '', '', # Attachments::Id + 'MessageId', 'varchar', 'NULL', '160', '', '', #RFC822 messageid, if any + 'Subject', 'varchar', 'NULL', '255', '', '', + 'Filename', 'varchar', 'NULL', '255', '', '', + 'ContentType', 'varchar', 'NULL', '80', '', '', + 'ContentEncoding', 'varchar', 'NULL', '80', '', '', + 'Content', 'long varbinary', 'NULL', '', '', '', + 'Headers', 'long varbinary', 'NULL', '', '', '', + + 'Creator', 'integer', 'NULL', '', '', '', + 'Created', 'timestamp', 'NULL', '', '', '', + + ], + 'primary_key' => 'id', + 'unique' => [ ], + 'index' => [ ['Parent'], ['TransactionId'], ['Parent', 'TransactionId'] ], +}, + +'Templates' => { + 'columns' => [ + 'id', 'serial', '', '', '', '', + 'Queue', 'integer', 'NOT NULL', '', '0', '', + 'Name', 'varchar', '', '40', '', '', + 'Description', 'varchar', 'NULL', '120', '', '', + 'Type', 'varchar', 'NULL', '16', '','', + 'Language', 'varchar', 'NULL', '16', '', '', + 'TranslationOf', 'integer', 'NULL', '', '', '', + 'Content', 'blob', 'NULL', '', '', '', + 'LastUpdated', 'timestamp', 'NULL', '', '', '', + 'LastUpdatedBy', 'integer', 'NULL', '', '', '', + 'Creator', 'integer', 'NULL', '', '', '', + 'Created', 'timestamp', 'NULL', '', '', '', + ], + 'primary_key' => 'id', + 'unique' => [ [''] ], + 'index' => [ ], +}, + +'Keywords' => { + 'columns' => [ + 'id', 'serial', '', '', '', '', + 'Name', 'varchar', 'NOT NULL', '255', '', '', + 'Description', 'varchar', 'NULL', '255', '', '', + 'Parent', 'integer', 'NULL', '', '', '', + 'Disabled', 'int2', '','','0','', +], + 'primary_key' => 'id', + 'unique' => [ [ 'Name', 'Parent' ] ], + 'index' => [ [ 'Name', ], [ 'Parent' ] ], +}, + +'ObjectKeywords' => { + 'columns' => [ + 'id', 'serial', '', '', '', '', + 'Keyword', 'integer', 'NOT NULL', '', '', '', + 'KeywordSelect', 'integer', 'NOT NULL', '', '', '', + 'ObjectType', 'varchar', 'NOT NULL', '32', '', '', + 'ObjectId', 'integer', 'NOT NULL', '', '', '', + ], + 'primary_key' => 'id', + 'unique' => [ [ 'ObjectId', 'ObjectType','KeywordSelect', 'Keyword' ] ], + 'index' => [ [ 'ObjectId', 'ObjectType' ] , ['Keyword'] ], + +}, + +'KeywordSelects' => { + 'columns' => [ + 'id', 'serial', '', '', '', '', + 'Name','varchar','NULL','255','','', + 'Keyword', 'integer', 'NULL', '', '', '', + 'Single', 'integer', 'NULL', '', '', '', + 'Depth', 'integer', 'NOT NULL', '', 0, '', + 'ObjectType', 'varchar', 'NOT NULL', '32', '', '', + 'ObjectField', 'varchar', 'NULL', '32', '', '', + 'ObjectValue', 'varchar', 'NULL', '255', '', '', + 'Disabled', 'int2', '','','0','', + ], + 'primary_key' => 'id', + 'unique' => [ [ ] ], + 'index' => [ [ 'Keyword' ], [ 'ObjectType', 'ObjectField', 'ObjectValue'] ], +}, + +}; |