summaryrefslogtreecommitdiff
path: root/rt/etc
diff options
context:
space:
mode:
authorivan <ivan>2003-07-15 13:30:43 +0000
committerivan <ivan>2003-07-15 13:30:43 +0000
commitded0451e9582df33cae6099a2fb72b4ea25076cf (patch)
tree62f9855aace4bdb30674156fc0e5d8b758cde0aa /rt/etc
parent0ebeec96313dd7edfca340f01f8fbbbac1f4aa1d (diff)
reverting to vendor branch rt 3.0.4, hopefully
Diffstat (limited to 'rt/etc')
-rw-r--r--rt/etc/acl.Oracle19
-rwxr-xr-xrt/etc/acl.Pg96
-rwxr-xr-xrt/etc/acl.mysql12
-rwxr-xr-xrt/etc/config.pm473
-rw-r--r--rt/etc/schema.Oracle287
-rwxr-xr-xrt/etc/schema.Pg747
-rwxr-xr-xrt/etc/schema.mysql429
-rw-r--r--rt/etc/schema.pm349
8 files changed, 896 insertions, 1516 deletions
diff --git a/rt/etc/acl.Oracle b/rt/etc/acl.Oracle
index 59d35a028..c8667c031 100644
--- a/rt/etc/acl.Oracle
+++ b/rt/etc/acl.Oracle
@@ -1,9 +1,10 @@
-CREATE USER !!DB_RT_USER!! identified by !!DB_RT_PASS!!
-temporary tablespace TEMP
-default tablespace USERS
-quota unlimited on USERS;
-
-grant connect, resource to !!DB_RT_USER!!;
-
-exit;
-
+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;");
+}
+1;
diff --git a/rt/etc/acl.Pg b/rt/etc/acl.Pg
index 13ac41dcf..16ea71b2d 100755
--- a/rt/etc/acl.Pg
+++ b/rt/etc/acl.Pg
@@ -1,39 +1,63 @@
-drop user !!DB_RT_USER!!;
-create user !!DB_RT_USER!! with password '!!DB_RT_PASS!!' NOCREATEDB NOCREATEUSER;
+sub acl {
+ my $dbh = shift;
-grant select, insert, update, delete on Groups to !!DB_RT_USER!!;
-grant select, insert, update, delete on Groups_id_seq to !!DB_RT_USER!!;
-grant select, insert, update, delete on ACL to !!DB_RT_USER!!;
-grant select, insert, update, delete on ACL_id_seq to !!DB_RT_USER!!;
-grant select, insert, update, delete on Watchers to !!DB_RT_USER!!;
-grant select, insert, update, delete on Watchers_id_seq to !!DB_RT_USER!!;
-grant select, insert, update, delete on Links to !!DB_RT_USER!!;
-grant select, insert, update, delete on Links_id_seq to !!DB_RT_USER!!;
-grant select, insert, update, delete on Users to !!DB_RT_USER!!;
-grant select, insert, update, delete on Users_id_seq to !!DB_RT_USER!!;
-grant select, insert, update, delete on Tickets to !!DB_RT_USER!!;
-grant select, insert, update, delete on Tickets_id_seq to !!DB_RT_USER!!;
-grant select, insert, update, delete on GroupMembers to !!DB_RT_USER!!;
-grant select, insert, update, delete on GroupMembers_id_seq to !!DB_RT_USER!!;
-grant select, insert, update, delete on Queues to !!DB_RT_USER!!;
-grant select, insert, update, delete on Queues_id_seq to !!DB_RT_USER!!;
-grant select, insert, update, delete on Transactions to !!DB_RT_USER!!;
-grant select, insert, update, delete on Transactions_id_seq to !!DB_RT_USER!!;
-grant select, insert, update, delete on ScripActions to !!DB_RT_USER!!;
-grant select, insert, update, delete on ScripActions_id_seq to !!DB_RT_USER!!;
-grant select, insert, update, delete on ScripConditions to !!DB_RT_USER!!;
-grant select, insert, update, delete on ScripConditions_id_seq to !!DB_RT_USER!!;
-grant select, insert, update, delete on Scrips to !!DB_RT_USER!!;
-grant select, insert, update, delete on Scrips_id_seq to !!DB_RT_USER!!;
-grant select, insert, update, delete on Attachments to !!DB_RT_USER!!;
-grant select, insert, update, delete on Attachments_id_seq to !!DB_RT_USER!!;
-grant select, insert, update, delete on Templates to !!DB_RT_USER!!;
-grant select, insert, update, delete on Templates_id_seq to !!DB_RT_USER!!;
-grant select, insert, update, delete on Keywords to !!DB_RT_USER!!;
-grant select, insert, update, delete on Keywords_id_seq to !!DB_RT_USER!!;
-grant select, insert, update, delete on ObjectKeywords to !!DB_RT_USER!!;
-grant select, insert, update, delete on ObjectKeywords_id_seq to !!DB_RT_USER!!;
-grant select, insert, update, delete on KeywordSelects to !!DB_RT_USER!!;
-grant select, insert, update, delete on KeywordSelects_id_seq to !!DB_RT_USER!!;
+ my @acls;
+ my @tables = qw (
+ attachments_id_seq
+ Attachments
+ queues_id_seq
+ Queues
+ links_id_seq
+ Links
+ principals_id_seq
+ Principals
+ groups_id_seq
+ Groups
+ scripconditions_id_seq
+ ScripConditions
+ transactions_id_seq
+ Transactions
+ scrips_id_seq
+ Scrips
+ acl_id_seq
+ ACL
+ groupmembers_id_seq
+ GroupMembers
+ cachedgroupmembers_id_seq
+ CachedGroupMembers
+ users_id_seq
+ Users
+ tickets_id_seq
+ Tickets
+ scripactions_id_seq
+ ScripActions
+ templates_id_seq
+ Templates
+ ticketcustomfieldvalues_id_s
+ TicketCustomFieldValues
+ customfields_id_seq
+ CustomFields
+ customfieldvalues_id_seq
+ CustomFieldValues
+ sessions
+ );
+
+ # if there's already an rt_user, drop it.
+ my @row =
+ $dbh->selectrow_array( "select usename from pg_user where usename = '" . $RT::DatabaseUser."'" );
+ if ( $row[0] ) {
+ push @acls, "drop user ${RT::DatabaseUser};",;
+ }
+
+ push @acls, "create user ${RT::DatabaseUser} with password '${RT::DatabasePassword}' NOCREATEDB NOCREATEUSER;";
+ foreach my $table (@tables) {
+ push @acls,
+ "GRANT SELECT, INSERT, UPDATE, DELETE ON $table to "
+ . $RT::DatabaseUser . ";";
+
+ }
+ return (@acls);
+}
+1;
diff --git a/rt/etc/acl.mysql b/rt/etc/acl.mysql
index 7feb376f5..0ecaa3b15 100755
--- a/rt/etc/acl.mysql
+++ b/rt/etc/acl.mysql
@@ -1,4 +1,8 @@
-
-DELETE FROM user WHERE user like '!!DB_RT_USER!!';
-DELETE FROM db where db LIKE '!!DB_DATABASE!!';
-GRANT SELECT,INSERT,CREATE,INDEX,UPDATE,DELETE ON !!DB_DATABASE!!.* TO !!DB_RT_USER!!@!!DB_RT_HOST!! IDENTIFIED BY '!!DB_RT_PASS!!';
+sub acl {
+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}';");
+}
+1;
diff --git a/rt/etc/config.pm b/rt/etc/config.pm
deleted file mode 100755
index 52b1a0b25..000000000
--- a/rt/etc/config.pm
+++ /dev/null
@@ -1,473 +0,0 @@
-# $Header: /home/cvs/cvsroot/freeside/rt/etc/Attic/config.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $
-
-package RT;
-
-# {{{ Base Configuration
-
-# $rtname the string that RT will look for in mail messages to
-# figure out what ticket a new piece of mail belongs to
-
-# Your domain name is recommended, so as not to pollute the namespace.
-# once you start using a given tag, you should probably never change it.
-# (otherwise, mail for existing tickets won't get put in the right place
-
-$rtname="example.com";
-
-# You should set this to your organization's DNS domain. For example,
-# fsck.com or asylum.arkham.ma.us. It's used by the linking interface to
-# guarantee that ticket URIs are unique and easy to construct.
-
-$Organization = "example.com";
-
-# $user_passwd_min defines the minimum length for user passwords. Setting
-# it to 0 disables this check
-$MinimumPasswordLength = "5";
-
-# $Timezone is used to convert times entered by users into GMT and back again
-# It should be set to a timezone recognized by your local unix box.
-$Timezone = 'US/Eastern';
-
-# LogDir is where RT writes its logfiles.
-# This directory should be writable by your rt group
-$LogDir = "!!RT_LOG_PATH!!";
-
-# }}}
-
-# {{{ Database Configuration
-
-# Database driver beeing used - i.e. MySQL.
-$DatabaseType="!!DB_TYPE!!";
-
-# The domain name of your database server
-# If you're running mysql and it's on localhost,
-# leave it blank for enhanced performance
-$DatabaseHost="!!DB_HOST!!";
-
-# The port that your database server is running on. Ignored unless it's
-# a positive integer. It's usually safe to leave this blank
-$DatabasePort="!!DB_PORT!!";
-
-
-#The name of the database user (inside the database)
-$DatabaseUser='!!DB_RT_USER!!';
-
-# Password the DatabaseUser should use to access the database
-$DatabasePassword='!!DB_RT_PASS!!';
-
-
-# The name of the RT's database on your database server
-$DatabaseName='!!DB_DATABASE!!';
-
-# If you're using Postgres and have compiled in SSL support,
-# set DatabaseRequireSSL to 1 to turn on SSL communication
-$DatabaseRequireSSL=undef;
-
-# }}}
-
-# {{{ Incoming mail gateway configuration
-
-
-# OwnerEmail is the address of a human who manages RT. RT will send
-# errors generated by the mail gateway to this address. This address
-# should _not_ be an address that's managed by your RT instance.
-
-$OwnerEmail = 'root';
-
-# If $LoopsToRTOwner is defined, RT will send mail that it believes
-# might be a loop to $RT::OwnerEmail
-
-$LoopsToRTOwner = 1;
-
-# If $StoreLoopss is defined, RT will record messages that it believes
-# to be part of mail loops.
-# As it does this, it will try to be careful not to send mail to the
-# sender of these messages
-
-$StoreLoops = undef;
-
-
-# $MaxAttachmentSize sets the maximum size (in bytes) of attachments stored
-# in the database.
-
-# For mysql and oracle, we set this size at 10 megabytes.
-# If you're running a postgres version earlier than 7.1, you will need
-# to drop this to 8192. (8k)
-
-$MaxAttachmentSize = 10000000;
-
-# $TruncateLongAttachments: if this is set to a non-undef value,
-# RT will truncate attachments longer than MaxAttachmentLength.
-
-$TruncateLongAttachments = undef;
-
-
-# $DropLongAttachments: if this is set to a non-undef value,
-# RT will silently drop attachments longer than MaxAttachmentLength.
-
-$DropLongAttachments = undef;
-
-# If $ParseNewMessageForTicketCcs is true, RT will attempt to divine
-# Ticket 'Cc' watchers from the To and Cc lines of incoming messages
-# Be forewarned that if you have _any_ addresses which forward mail to
-# RT automatically and you enable this option without modifying
-# "IsRTAddress" below, you will get yourself into a heap of trouble.
-# And well, this is free software, so there isn't a warrantee, but
-# I disclaim all ability to help you if you do enable this without
-# modifying IsRTAddress below.
-
-$ParseNewMessageForTicketCcs = undef;
-
-# IsRTAddress is used to make sure RT doesn't add itself as a ticket CC if
-# the setting above is enabled.
-
-sub IsRTAddress {
- my $address = shift;
-
- # Example: the following rule would tell RT not to Cc
- # "tickets@noc.example.com"
- # return(1) if ($address =~ /^tickets\@noc.example.com$/i);
-
- return(undef)
-}
-
-# CanonicalizeAddress converts email addresses into canonical form.
-# it takes one email address in and returns the proper canonical
-# form. You can dump whatever your proper local config is in here
-
-sub CanonicalizeAddress {
- my $email = shift;
- # Example: the following rule would treat all email
- # coming from a subdomain as coming from second level domain
- # foo.com
- #$email =~ s/\@(.*).foo.com/\@foo.com/;
- return ($email)
-}
-
-# If $LookupSenderInExternalDatabase is defined, RT will attempt to
-# verify the incoming message sender with a known source, using the
-# LookupExternalUserInfo routine below
-
-$LookupSenderInExternalDatabase = undef;
-
-# If $SenderMustExistInExternalDatabase is true, RT will refuse to
-# create non-privileged accounts for unknown users if you are using
-# the "LookupSenderInExternalDatabase" option.
-# Instead, an error message will be mailed and RT will forward the
-# message to $RTOwner.
-#
-# If you are not using $LookupSenderInExternalDatabase, this option
-# has no effect.
-#
-# If you define an AutoRejectRequest template, RT will use this
-# template for the rejection message.
-
-$SenderMustExistInExternalDatabase = undef;
-
-# LookupExternalUserInfo is a site-definable method for synchronizing
-# incoming users with an external data source.
-#
-# This routine takes a tuple of EmailAddress and FriendlyName
-# EmailAddress is the user's email address, ususally taken from
-# an email message's From: header.
-# FriendlyName is a freeform string, ususally taken from the "comment"
-# portion of an email message's From: header.
-#
-# It returns (FoundInExternalDatabase, ParamHash);
-#
-# FoundInExternalDatabase must be set to 1 before return if the user was
-# found in the external database.
-#
-# ParamHash is a Perl parameter hash which can contain at least the following
-# fields. These fields are used to populate RT's users database when the user
-# is created
-#
-# EmailAddress is the email address that RT should use for this user.
-# Name is the 'Name' attribute RT should use for this user.
-# 'Name' is used for things like access control and user lookups.
-# RealName is what RT should display as the user's name when displaying
-# 'friendly' names
-
-sub LookupExternalUserInfo {
- my ($EmailAddress, $RealName) = @_;
-
- my $FoundInExternalDatabase = 1;
- my %params = {};
-
- #Name is the RT username you want to use for this user.
- $params{'Name'} = $EmailAddress;
- $params{'EmailAddress'} = $EmailAddress;
- $params{'RealName'} = $RealName;
-
- # See RT's contributed code for examples.
- # http://www.fsck.com/pub/rt/contrib/
- return ($FoundInExternalDatabase, %params);
-}
-
-# }}}
-
-# {{{ Outgoing mail configuration
-
-# RT is designed such that any mail which already has a ticket-id associated
-# with it will get to the right place automatically.
-
-# $CorrespondAddress and $CommentAddress are the default addresses
-# that will be listed in From: and Reply-To: headers of correspondence
-# and comment mail tracked by RT, unless overridden by a queue-specific
-# address.
-
-$CorrespondAddress='RT::CorrespondAddress.not.set';
-
-$CommentAddress='RT::CommentAddress.not.set';
-
-
-#Sendmail Configuration
-
-# $MailCommand defines which method RT will use to try to send mail
-# We know that 'sendmailpipe' works fairly well.
-# If 'sendmailpipe' doesn't work well for you, try 'sendmail'
-#
-# Note that you should remove the '-t' from $SendmailArguments
-# if you use 'sendmail rather than 'sendmailpipe'
-
-$MailCommand = 'sendmailpipe';
-
-# $SendmailArguments defines what flags to pass to $Sendmail
-# assuming you picked 'sendmail' or 'sendmailpipe' as the $MailCommand above.
-# If you picked 'sendmailpipe', you MUST add a -t flag to $SendmailArguments
-
-# These options are good for most sendmail wrappers and workalikes
-$SendmailArguments="-oi -t";
-
-# These arguments are good for sendmail brand sendmail 8 and newer
-#$SendmailArguments="-oi -t -ODeliveryMode=b -OErrorMode=m";
-
-# If you selected 'sendmailpipe' above, you MUST specify the path
-# to your sendmail binary in $SendmailPath.
-# !! If you did not # select 'sendmailpipe' above, this has no effect!!
-$SendmailPath = "/usr/sbin/sendmail";
-
-# RT can optionally set a "Friendly" 'To:' header when sending messages to
-# Ccs or AdminCcs (rather than having a blank 'To:' header.
-
-# This feature DOES NOT WORK WITH SENDMAIL[tm] BRAND SENDMAIL
-# If you are using sendmail, rather than postfix, qmail, exim or some other MTA,
-# you _must_ disable this option.
-
-$UseFriendlyToLine = 0;
-
-
-# }}}
-
-# {{{ Logging
-
-# Logging. The default is to log anything except debugging
-# information to a logfile. Check the Log::Dispatch POD for
-# information about how to get things by syslog, mail or anything
-# else, get debugging info in the log, etc.
-
-# It might generally make
-# sense to send error and higher by email to some administrator.
-# If you do this, be careful that this email isn't sent to this RT instance.
-
-
-# the minimum level error that will be logged to the specific device.
-# levels from lowest to highest:
-# debug info notice warning error critical alert emergency
-
-
-# Mail loops will generate a critical log message.
-
-$LogToScreen = 'error';
-$LogToFile = 'error';
-#$LogToFileNamed = "$LogDir/rt.log.".$$.".".$<; #log to rt.log.<pid>.<user>
-$LogToFileNamed = "$LogDir/rt.log".$<; #log to rt.log.user;
-
-# }}}
-
-# {{{ Web interface configuration
-
-
-
-# Define the directory name to be used for images in rt web
-# documents.
-
-# If you're putting the web ui somewhere other than at the root of
-# your server
-# $WebPath requires a leading / but no trailing /
-
-$WebPath = "";
-
-# This is the Scheme, server and port for constructing urls to webrt
-# $WebBaseURL doesn't need a trailing /
-
-$WebBaseURL = "http://RT::WebBaseURL.not.configured:80";
-
-$WebURL = $WebBaseURL . $WebPath . "/";
-
-
-
-# $WebImagesURL points to the base URL where RT can find its images.
-# If you're running the FastCGI version of the RT web interface,
-# you should make RT's WebRT/html/NoAuth/images directory available on
-# a static web server and supply that URL as $WebImagesURL.
-
-$WebImagesURL = $WebURL."NoAuth/images/";
-
-# $RTLogoURL points to the URL of the RT logo displayed in the web UI
-
-$LogoURL = $WebImagesURL."rt.jpg";
-
-# If $WebExternalAuth is defined, RT will defer to the environment's
-# REMOTE_USER variable.
-
-$WebExternalAuth = undef;
-
-# $MasonComponentRoot is where your rt instance keeps its mason html files
-# (this should be autoconfigured during 'make install' or 'make upgrade')
-
-$MasonComponentRoot = "!!MASON_HTML_PATH!!";
-
-# $MasonLocalComponentRoot is where your rt instance keeps its site-local
-# mason html files.
-# (this should be autoconfigured during 'make install' or 'make upgrade')
-
-$MasonLocalComponentRoot = "!!MASON_LOCAL_HTML_PATH!!";
-
-# $MasonDataDir Where mason keeps its datafiles
-# (this should be autoconfigured during 'make install' or 'make upgrade')
-
-$MasonDataDir = "!!MASON_DATA_PATH!!";
-
-# RT needs to put session data (for preserving state between connections
-# via the web interface)
-$MasonSessionDir = "!!MASON_SESSION_PATH!!";
-
-
-
-#This is from tobias' prototype web search UI. it may stay and it may go.
-%WebOptions=
- (
- # This is for putting in more user-actions at the Transaction
- # bar. I will typically add "Enter bug in Bugzilla" here.:
- ExtraTransactionActions => sub { return ""; },
-
- # Here you can modify the list view. Be aware that the web
- # interface might crash if TicketAttribute is wrongly set.
-
- QueueListingCols =>
- [
- { Header => 'Id',
- TicketLink => 1,
- TicketAttribute => 'Id'
- },
-
- { Header => 'Subject',
- TicketAttribute => 'Subject'
- },
- { Header => 'Requestor(s)',
- TicketAttribute => 'RequestorsAsString'
- },
- { Header => 'Status',
- TicketAttribute => 'Status'
- },
-
-
- { Header => 'Queue',
- TicketAttribute => 'QueueObj->Name'
- },
-
-
-
- { Header => 'Told',
- TicketAttribute => 'ToldObj->AgeAsString'
- },
-
- { Header => 'Age',
- TicketAttribute => 'CreatedObj->AgeAsString'
- },
-
- { Header => 'Last',
- TicketAttribute => 'LastUpdatedObj->AgeAsString'
- },
-
- # TODO: It would be nice with a link here to the Owner and all
- # other request owned by this Owner.
- { Header => 'Owner',
- TicketAttribute => 'OwnerObj->Name'
- },
-
-
- { Header => 'Take',
- TicketLink => 1,
- Constant => 'Take',
- ExtraLinks => '&Action=Take'
- },
-
- ]
- );
-
-# }}}
-
-# {{{ RT Linking Interface
-
-# $TicketBaseURI is the Base path of the URI for local tickets
-
-# You shouldn't need to touch this. it's used to link tickets both locally
-# and remotely
-
-$TicketBaseURI = "fsck.com-rt://$Organization/$rtname/ticket/";
-
-# A hash table of conversion subs to be used for transforming RT Link
-# URIs to URLs in the web interface. If you want to use RT towards
-# locally installed databases, this is the right place to configure it.
-
-%URI2HTTP=
- (
- 'http' => sub {return @_;},
- 'https' => sub {return @_;},
- 'ftp' => sub {return @_;},
- 'fsck.com-rt' => sub {warn "stub!";},
- 'mozilla.org-bugzilla' => sub {warn "stub!"},
- 'fsck.com-kb' => sub {warn "stub!"}
- );
-
-
-# A hash table of subs for fetching content from an URI
-%ContentFromURI=
- (
- 'fsck.com-rt' => sub {warn "stub!";},
- 'mozilla.org-bugzilla' => sub {warn "stub!"},
- 'fsck.com-kb' => sub {warn "stub!"}
- );
-
-# }}}
-
-# {{{ No User servicable parts inside
-
-############################################
-############################################
-############################################
-#
-# Don't edit anything below this line unless you really know
-# what you're doing
-#
-#
-############################################
-############################################
-
-# TODO: get this stuff out of the config file and into RT.pm
-
-#Set up us the timezone
-$ENV{'TZ'} = $Timezone; #TODO: Bogus hack to deal with Date::Manip whining
-
-# Configure sendmail if we're using Entity->send('sendmail')
-if ($MailCommand eq 'sendmail') {
- $MailParams = $SendmailArguments;
-}
-
-
-
-# }}}
-
-
-1;
diff --git a/rt/etc/schema.Oracle b/rt/etc/schema.Oracle
deleted file mode 100644
index 0c14cb39d..000000000
--- a/rt/etc/schema.Oracle
+++ /dev/null
@@ -1,287 +0,0 @@
-CREATE SEQUENCE KEYWORDSELECTS_seq;
-CREATE TABLE KeywordSelects (
- id NUMBER(11, 0) PRIMARY KEY,
- Name VARCHAR2(255),
- Keyword NUMBER(11, 0),
- Single NUMBER(11, 0),
- Depth NUMBER(11, 0) DEFAULT 0,
- ObjectType VARCHAR2(32) NOT NULL,
- ObjectField VARCHAR2(32),
- ObjectValue VARCHAR2(255),
- Disabled NUMBER(11, 0) DEFAULT 0
-);
-
-CREATE INDEX KeywordSelects1 ON KeywordSelects (Keyword);
-CREATE INDEX KeywordSelects2 ON
- KeywordSelects(ObjectType, ObjectField, ObjectValue);
-
-
-CREATE SEQUENCE ATTACHMENTS_seq;
-CREATE TABLE Attachments (
- id NUMBER(11,0) PRIMARY KEY,
- TransactionId NUMBER(11,0) NOT NULL,
- Parent NUMBER(11,0),
- MessageId VARCHAR2(160),
- Subject VARCHAR2(255),
- Filename VARCHAR2(255),
- ContentType VARCHAR2(80),
- ContentEncoding VARCHAR2(80),
- Content CLOB,
- Headers CLOB,
- Creator NUMBER(11,0),
- Created DATE,
- Disabled NUMBER(11,0) DEFAULT 0
-);
-
-CREATE SEQUENCE QUEUES_seq;
-CREATE TABLE Queues (
- id NUMBER(11, 0) PRIMARY KEY,
- Name VARCHAR2(40) NOT NULL UNIQUE,
- Description VARCHAR2(120),
- CorrespondAddress VARCHAR2(40),
- CommentAddress VARCHAR2(40),
- InitialPriority NUMBER(11, 0),
- FinalPriority NUMBER(11, 0),
- DefaultDueIn NUMBER(11, 0),
- Creator NUMBER(11, 0),
- Created DATE,
- LastUpdatedBy NUMBER(11, 0),
- LastUpdated DATE,
- Disabled NUMBER(11,0) DEFAULT 0
-);
-
-CREATE SEQUENCE LINKS_seq;
-CREATE TABLE Links (
- id NUMBER(11,0) PRIMARY KEY,
- Base VARCHAR2(255),
- Target VARCHAR2(255),
- Type VARCHAR2(20) NOT NULL,
- LocalTarget NUMBER(11,0),
- LocalBase NUMBER(11,0),
- LastUpdatedBy NUMBER(11,0),
- LastUpdated DATE,
- Creator NUMBER(11,0),
- Created DATE
-);
-
-CREATE UNIQUE INDEX Links1 ON Links (Base, Target, Type);
-
-
-
-CREATE SEQUENCE GROUPS_seq;
-CREATE TABLE Groups (
- id NUMBER(11,0) PRIMARY KEY,
- Name VARCHAR2(16) UNIQUE,
- Description VARCHAR(64),
- Pseudo NUMBER(11,0) DEFAULT 0
-);
-
-CREATE SEQUENCE WATCHERS_seq;
-CREATE TABLE Watchers (
- id NUMBER(11,0) PRIMARY KEY,
- Type VARCHAR2(16),
- Scope VARCHAR2(16),
- Value NUMBER(11,0),
- Email VARCHAR2(255),
- Quiet NUMBER(11,0),
- Owner NUMBER(11,0),
- Creator NUMBER(11,0),
- Created DATE,
- LastUpdatedBy NUMBER(11,0),
- LastUpdated DATE
-);
-
-
-
-CREATE SEQUENCE SCRIPCONDITIONS_seq;
-CREATE TABLE ScripConditions (
- id NUMBER(11, 0) PRIMARY KEY,
- Name VARCHAR2(255),
- Description VARCHAR2(255),
- ExecModule VARCHAR2(60),
- Argument VARCHAR2(255),
- ApplicableTransTypes VARCHAR2(60),
- Creator NUMBER(11, 0),
- Created DATE,
- LastUpdatedBy NUMBER(11, 0),
- LastUpdated DATE
-);
-
-
-CREATE SEQUENCE TRANSACTIONS_seq;
-CREATE TABLE Transactions (
- id NUMBER(11,0) PRIMARY KEY,
- EffectiveTicket NUMBER(11,0),
- Ticket NUMBER(11,0),
- TimeTaken NUMBER(11,0),
- Type VARCHAR2(20),
- Field VARCHAR2(40),
- OldValue VARCHAR2(255),
- NewValue VARCHAR2(255),
- Data VARCHAR2(100),
- Creator NUMBER(11,0),
- Created DATE,
- Disabled NUMBER(11,0) DEFAULT 0
-);
-
-CREATE SEQUENCE SCRIPS_seq;
-CREATE TABLE Scrips (
- id NUMBER(11,0) PRIMARY KEY,
- ScripCondition NUMBER(11,0),
- ScripAction NUMBER(11,0),
- Stage VARCHAR2(32),
- Queue NUMBER(11,0),
- Template NUMBER(11,0),
- Creator NUMBER(11,0),
- Created DATE,
- LastUpdatedBy NUMBER(11,0),
- LastUpdated DATE
-);
-
-
-
-
-CREATE SEQUENCE ACL_seq;
-CREATE TABLE ACL (
- id NUMBER(11,0) PRIMARY KEY,
- PrincipalId NUMBER(11,0),
- PrincipalType VARCHAR2(25),
- RightName VARCHAR2(25),
- RightScope VARCHAR2(25),
- RightAppliesTo NUMBER(11,0)
-);
-
-CREATE SEQUENCE GROUPMEMBERS_seq;
-CREATE TABLE GroupMembers (
- id NUMBER(11,0) PRIMARY KEY,
- GroupId NUMBER(11,0),
- UserId NUMBER(11,0)
-);
-
-CREATE UNIQUE INDEX GroupMembers1 ON GroupMembers (GroupId, UserId);
-
-
-CREATE SEQUENCE OBJECTKEYWORDS_seq;
-CREATE TABLE ObjectKeywords (
- id NUMBER(11,0) PRIMARY KEY,
- Keyword NUMBER(11,0) NOT NULL,
- KeywordSelect NUMBER(11,0) NOT NULL,
- ObjectType VARCHAR2(32) NOT NULL,
- ObjectId NUMBER(11,0) NOT NULL
-);
-
-CREATE UNIQUE INDEX ObjectKeywords1 ON ObjectKeywords
- (ObjectId, ObjectType, KeywordSelect, Keyword);
-CREATE INDEX ObjectKeywords3 ON ObjectKeywords (Keyword);
-
-CREATE SEQUENCE KEYWORDS_seq;
-CREATE TABLE Keywords (
- id NUMBER(11, 0) PRIMARY KEY,
- Name VARCHAR2(255) NOT NULL,
- Description VARCHAR2(255),
- Parent NUMBER(11, 0),
- Disabled NUMBER(11, 0) DEFAULT 0
-);
-
-CREATE UNIQUE INDEX Keywords1 ON Keywords (Name, Parent);
-CREATE INDEX Keywords3 ON Keywords (Parent);
-
-CREATE SEQUENCE USERS_seq;
-CREATE TABLE Users (
- id NUMBER(11,0) PRIMARY KEY,
- Name VARCHAR2(120) NOT NULL UNIQUE,
- Password VARCHAR2(40),
- Comments CLOB,
- Signature CLOB,
- EmailAddress VARCHAR2(120),
- FreeFormContactInfo CLOB,
- Organization VARCHAR2(200),
- Privileged NUMBER(11,0),
- RealName VARCHAR2(120),
- NickName VARCHAR2(16),
- Lang VARCHAR2(16),
- EmailEncoding VARCHAR2(16),
- WebEncoding VARCHAR2(16),
- ExternalContactInfoId VARCHAR2(100),
- ContactInfoSystem VARCHAR2(30),
- ExternalAuthId VARCHAR2(100),
- AuthSystem VARCHAR2(30),
- Gecos VARCHAR2(16),
- HomePhone VARCHAR2(30),
- WorkPhone VARCHAR2(30),
- MobilePhone VARCHAR2(30),
- PagerPhone VARCHAR2(30),
- Address1 VARCHAR2(200),
- Address2 VARCHAR2(200),
- City VARCHAR2(100),
- State VARCHAR2(100),
- Zip VARCHAR2(16),
- Country VARCHAR2(50),
- Creator NUMBER(11,0),
- Created DATE,
- LastUpdatedBy NUMBER(11,0),
- LastUpdated DATE,
- Disabled NUMBER(11,0) DEFAULT 0
-);
-
-
-
-
-CREATE SEQUENCE TICKETS_seq;
-CREATE TABLE Tickets (
- id NUMBER(11, 0) PRIMARY KEY,
- EffectiveId NUMBER(11, 0),
- Queue NUMBER(11,0),
- Type VARCHAR2(16),
- IssueStatement NUMBER(11,0),
- Resolution NUMBER(11,0),
- Owner NUMBER(11,0),
- Subject VARCHAR2(200) DEFAULT '',
- InitialPriority NUMBER(11,0) DEFAULT 0,
- FinalPriority NUMBER(11,0) DEFAULT 0,
- Priority NUMBER(11,0) DEFAULT 0,
- Status VARCHAR2(10),
- TimeWorked NUMBER(11,0) DEFAULT 0,
- TimeLeft NUMBER(11,0) DEFAULT 0,
- Told DATE,
- Starts DATE,
- Started DATE,
- Due DATE,
- Resolved DATE,
- LastUpdatedBy NUMBER(11,0),
- LastUpdated DATE,
- Creator NUMBER(11,0),
- Created DATE,
- Disabled NUMBER(11,0) DEFAULT 0
-);
-
-CREATE SEQUENCE SCRIPACTIONS_seq;
-CREATE TABLE ScripActions (
- id NUMBER(11,0) PRIMARY KEY,
- Name VARCHAR2(255),
- Description VARCHAR2(255),
- ExecModule VARCHAR2(60),
- Argument VARCHAR2(255),
- Creator NUMBER(11,0),
- Created DATE,
- LastUpdatedBy NUMBER(11,0),
- LastUpdated DATE
-);
-
-
-CREATE SEQUENCE TEMPLATES_seq;
-CREATE TABLE Templates (
- id NUMBER(11,0) PRIMARY KEY,
- Queue NUMBER(11,0) DEFAULT 0 NOT NULL,
- Name VARCHAR2(40) NOT NULL UNIQUE,
- Description VARCHAR2(120),
- Type VARCHAR2(16),
- Language VARCHAR2(16),
- TranslationOf NUMBER(11,0),
- Content CLOB,
- LastUpdated DATE,
- LastUpdatedBy NUMBER(11,0),
- Creator NUMBER(11,0),
- Created DATE
-);
-
diff --git a/rt/etc/schema.Pg b/rt/etc/schema.Pg
index 21d981b4a..ba0d6fc6c 100755
--- a/rt/etc/schema.Pg
+++ b/rt/etc/schema.Pg
@@ -1,267 +1,578 @@
-CREATE TABLE KeywordSelects (
- id serial NOT NULL ,
- Name varchar(255) ,
- Keyword integer ,
- Single integer ,
- Depth integer NOT NULL DEFAULT 0 ,
- ObjectType varchar(32) NOT NULL ,
- ObjectField varchar(32) ,
- ObjectValue varchar(255) ,
- Disabled int2 NOT NULL DEFAULT 0 ,
- PRIMARY KEY (id)
-);
-CREATE INDEX KeywordSelects1 ON KeywordSelects (Keyword);
-CREATE INDEX KeywordSelects2 ON KeywordSelects (ObjectType, ObjectField, ObjectValue);
+------------------------------------------------------------------
+-- My2Pg 1.23 translated dump
+--
+------------------------------------------------------------------
+
+BEGIN;
+
+
+
+
+--
+-- Sequences for table ATTACHMENTS
+--
+
+CREATE SEQUENCE attachments_id_seq;
+
+-- {{{ Attachments
+
CREATE TABLE Attachments (
- id serial NOT NULL ,
+ id INTEGER DEFAULT nextval('attachments_id_seq'),
TransactionId integer NOT NULL ,
- Parent integer ,
- MessageId varchar(160) ,
- Subject varchar(255) ,
- Filename varchar(255) ,
- ContentType varchar(80) ,
- ContentEncoding varchar(80) ,
- Content TEXT ,
- Headers TEXT ,
- Creator integer ,
- Created timestamp ,
+ Parent integer NOT NULL DEFAULT 0 ,
+ MessageId varchar(160) NULL ,
+ Subject varchar(255) NULL ,
+ Filename varchar(255) NULL ,
+ ContentType varchar(80) NULL ,
+ ContentEncoding varchar(80) NULL ,
+ Content text NULL ,
+ Headers text NULL ,
+ Creator integer NOT NULL DEFAULT 0 ,
+ Created TIMESTAMP NULL ,
PRIMARY KEY (id)
+
);
-CREATE INDEX Attachments1 ON Attachments (Parent);
-CREATE INDEX Attachments2 ON Attachments (TransactionId);
-CREATE INDEX Attachments3 ON Attachments (Parent, TransactionId);
+
+CREATE INDEX Attachments1 ON Attachments (Parent) ;
+CREATE INDEX Attachments2 ON Attachments (TransactionId) ;
+CREATE INDEX Attachments3 ON Attachments (Parent, TransactionId) ;
+-- }}}
+
+-- {{{ Queues
+
+
+--
+-- Sequences for table QUEUES
+--
+
+CREATE SEQUENCE queues_id_seq;
+
CREATE TABLE Queues (
- id serial NOT NULL ,
- Name varchar(120) NOT NULL ,
- Description varchar(120) ,
- CorrespondAddress varchar(120) ,
- CommentAddress varchar(120) ,
- InitialPriority integer ,
- FinalPriority integer ,
- DefaultDueIn integer ,
- Creator integer ,
- Created timestamp ,
- LastUpdatedBy integer ,
- LastUpdated timestamp ,
+ id INTEGER DEFAULT nextval('queues_id_seq'),
+ Name varchar(200) NOT NULL ,
+ Description varchar(255) NULL ,
+ CorrespondAddress varchar(120) NULL ,
+ CommentAddress varchar(120) NULL ,
+ InitialPriority integer NOT NULL DEFAULT 0 ,
+ FinalPriority integer NOT NULL DEFAULT 0 ,
+ DefaultDueIn integer NOT NULL DEFAULT 0 ,
+ Creator integer NOT NULL DEFAULT 0 ,
+ Created TIMESTAMP NULL ,
+ LastUpdatedBy integer NOT NULL DEFAULT 0 ,
+ LastUpdated TIMESTAMP NULL ,
Disabled int2 NOT NULL DEFAULT 0 ,
PRIMARY KEY (id)
+
);
-CREATE UNIQUE INDEX Queues1 ON Queues (Name);
+CREATE UNIQUE INDEX Queues1 ON Queues (Name) ;
+
+-- }}}
+
+-- {{{ Links
+
+
+
+--
+-- Sequences for table LINKS
+--
+
+CREATE SEQUENCE links_id_seq;
+
CREATE TABLE Links (
- id serial NOT NULL ,
- Base varchar(240) ,
- Target varchar(240) ,
+ id INTEGER DEFAULT nextval('links_id_seq'),
+ Base varchar(240) NULL ,
+ Target varchar(240) NULL ,
Type varchar(20) NOT NULL ,
- LocalTarget integer ,
- LocalBase integer ,
- LastUpdatedBy integer ,
- LastUpdated timestamp ,
- Creator integer ,
- Created timestamp ,
+ LocalTarget integer NOT NULL DEFAULT 0 ,
+ LocalBase integer NOT NULL DEFAULT 0 ,
+ LastUpdatedBy integer NOT NULL DEFAULT 0 ,
+ LastUpdated TIMESTAMP NULL ,
+ Creator integer NOT NULL DEFAULT 0 ,
+ Created TIMESTAMP NULL ,
PRIMARY KEY (id)
+
);
-CREATE UNIQUE INDEX Links1 ON Links (Base, Target, Type);
-CREATE TABLE Groups (
- id serial NOT NULL ,
- Name varchar(16) ,
- Description varchar(64) ,
- Pseudo integer NOT NULL DEFAULT 0 ,
- PRIMARY KEY (id)
+CREATE UNIQUE INDEX Links1 ON Links (Base, Target, Type) ;
+
+-- }}}
+
+-- {{{ Principals
+
+
+
+--
+-- Sequences for table PRINCIPALS
+--
+
+CREATE SEQUENCE principals_id_seq;
+
+CREATE TABLE Principals (
+ id INTEGER DEFAULT nextval('principals_id_seq') not null,
+ PrincipalType VARCHAR(16) not null,
+ ObjectId integer,
+ Disabled int2 NOT NULL DEFAULT 0 ,
+ PRIMARY KEY (id)
+
);
-CREATE UNIQUE INDEX Groups1 ON Groups (Name);
-CREATE TABLE Watchers (
- id serial NOT NULL ,
- Type varchar(16) ,
- Scope varchar(16) ,
- Value integer ,
- Email varchar(255) ,
- Quiet integer ,
- Owner integer ,
- Creator integer ,
- Created timestamp ,
- LastUpdatedBy integer ,
- LastUpdated timestamp ,
+
+CREATE INDEX Principals2 ON Principals (ObjectId);
+
+
+-- }}}
+
+-- {{{ Groups
+
+
+
+--
+-- Sequences for table GROUPS
+--
+
+CREATE SEQUENCE groups_id_seq;
+
+CREATE TABLE Groups (
+ id INTEGER DEFAULT nextval('groups_id_seq'),
+ Name varchar(200) NULL ,
+ Description varchar(255) NULL ,
+ Domain varchar(64),
+ Type varchar(64),
+ Instance varchar(64),
PRIMARY KEY (id)
+
);
-CREATE INDEX Watchers1 ON Watchers (Scope, Value, Type, Owner);
+CREATE UNIQUE INDEX Groups1 ON Groups (Domain,Instance,Type,id, Name);
+CREATE INDEX Groups2 On Groups (Type, Instance, Domain);
+
+
+-- }}}
+
+-- {{{ ScripConditions
+
+
+
+--
+-- Sequences for table SCRIPCONDITIONS
+--
+
+CREATE SEQUENCE scripconditions_id_seq;
+
CREATE TABLE ScripConditions (
- id serial NOT NULL ,
- Name varchar(255) ,
- Description varchar(255) ,
- ExecModule varchar(60) ,
- Argument varchar(255) ,
- ApplicableTransTypes varchar(60) ,
- Creator integer ,
- Created timestamp ,
- LastUpdatedBy integer ,
- LastUpdated timestamp ,
+ id INTEGER DEFAULT nextval('scripconditions_id_seq'),
+ Name varchar(200) NULL ,
+ Description varchar(255) NULL ,
+ ExecModule varchar(60) NULL ,
+ Argument varchar(255) NULL ,
+ ApplicableTransTypes varchar(60) NULL ,
+
+ Creator integer NOT NULL DEFAULT 0 ,
+ Created TIMESTAMP NULL ,
+ LastUpdatedBy integer NOT NULL DEFAULT 0 ,
+ LastUpdated TIMESTAMP NULL ,
PRIMARY KEY (id)
+
);
+
+-- }}}
+
+-- {{{ Transactions
+
+
+--
+-- Sequences for table TRANSACTIONS
+--
+
+CREATE SEQUENCE transactions_id_seq;
+
CREATE TABLE Transactions (
- id serial NOT NULL ,
- EffectiveTicket integer ,
- Ticket integer ,
- TimeTaken integer ,
- Type varchar(20) ,
- Field varchar(40) ,
- OldValue varchar(255) ,
- NewValue varchar(255) ,
- Data varchar(100) ,
- Creator integer ,
- Created timestamp ,
+ id INTEGER DEFAULT nextval('transactions_id_seq'),
+ EffectiveTicket integer NOT NULL DEFAULT 0 ,
+ Ticket 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 ,
+
+ Creator integer NOT NULL DEFAULT 0 ,
+ Created TIMESTAMP NULL ,
PRIMARY KEY (id)
+
);
CREATE INDEX Transactions1 ON Transactions (Ticket);
CREATE INDEX Transactions2 ON Transactions (EffectiveTicket);
+
+-- }}}
+
+-- {{{ Scrips
+
+
+
+--
+-- Sequences for table SCRIPS
+--
+
+CREATE SEQUENCE scrips_id_seq;
+
CREATE TABLE Scrips (
- id serial NOT NULL ,
- ScripCondition integer ,
- ScripAction integer ,
- Stage varchar(32) ,
- Queue integer ,
- Template integer ,
- Creator integer ,
- Created timestamp ,
- LastUpdatedBy integer ,
- LastUpdated timestamp ,
+ id INTEGER DEFAULT nextval('scrips_id_seq'),
+ Description varchar(255),
+ ScripCondition integer NOT NULL DEFAULT 0 ,
+ ScripAction integer NOT NULL DEFAULT 0 ,
+ ConditionRules text NULL ,
+ ActionRules text NULL ,
+ CustomIsApplicableCode text NULL ,
+ CustomPrepareCode text NULL ,
+ CustomCommitCode text NULL ,
+ Stage varchar(32) NULL ,
+ Queue integer NOT NULL DEFAULT 0 ,
+ Template integer NOT NULL DEFAULT 0 ,
+ Creator integer NOT NULL DEFAULT 0 ,
+ Created TIMESTAMP NULL ,
+ LastUpdatedBy integer NOT NULL DEFAULT 0 ,
+ LastUpdated TIMESTAMP NULL ,
PRIMARY KEY (id)
+
);
+
+-- }}}
+
+-- {{{ ACL
+
+
+--
+-- Sequences for table ACL
+--
+
+CREATE SEQUENCE acl_id_seq;
+
CREATE TABLE ACL (
- id serial NOT NULL ,
- PrincipalId integer ,
- PrincipalType varchar(25) ,
- RightName varchar(25) ,
- RightScope varchar(25) ,
- RightAppliesTo integer ,
+ id INTEGER DEFAULT nextval('acl_id_seq'),
+ PrincipalType varchar(25) NOT NULL,
+
+ PrincipalId integer NOT NULL ,
+ RightName varchar(25) NOT NULL ,
+ ObjectType varchar(25) NOT NULL ,
+ ObjectId integer NOT NULL DEFAULT 0,
+ DelegatedBy integer NOT NULL DEFAULT 0,
+ DelegatedFrom integer NOT NULL DEFAULT 0,
PRIMARY KEY (id)
+
);
-CREATE INDEX ACL1 ON ACL (RightScope, PrincipalId);
-CREATE INDEX ACL2 ON ACL (RightScope, RightAppliesTo, RightName, PrincipalType, PrincipalId);
+
+CREATE INDEX ACL1 on ACL(RightName, ObjectType, ObjectId,PrincipalType,PrincipalId);
+
+
+-- }}}
+
+-- {{{ GroupMembers
+
+
+
+--
+-- Sequences for table GROUPMEMBERS
+--
+
+CREATE SEQUENCE groupmembers_id_seq;
+
CREATE TABLE GroupMembers (
- id serial NOT NULL ,
- GroupId integer ,
- UserId integer ,
- PRIMARY KEY (id)
-);
-CREATE UNIQUE INDEX GroupMembers1 ON GroupMembers (GroupId, UserId);
-CREATE TABLE ObjectKeywords (
- id serial NOT NULL ,
- Keyword integer NOT NULL ,
- KeywordSelect integer NOT NULL ,
- ObjectType varchar(32) NOT NULL ,
- ObjectId integer NOT NULL ,
+ id INTEGER DEFAULT nextval('groupmembers_id_seq'),
+ GroupId integer NOT NULL DEFAULT 0,
+ MemberId integer NOT NULL DEFAULT 0,
PRIMARY KEY (id)
+
);
-CREATE UNIQUE INDEX ObjectKeywords1 ON ObjectKeywords (ObjectId, ObjectType, KeywordSelect, Keyword);
-CREATE INDEX ObjectKeywords2 ON ObjectKeywords (ObjectId, ObjectType);
-CREATE INDEX ObjectKeywords3 ON ObjectKeywords (Keyword);
-CREATE TABLE Keywords (
- id serial NOT NULL ,
- Name varchar(255) NOT NULL ,
- Description varchar(255) ,
- Parent integer ,
- Disabled int2 NOT NULL DEFAULT 0 ,
- PRIMARY KEY (id)
+
+-- }}}
+
+-- {{{ GroupMembersCache
+
+
+
+--
+-- Sequences for table CACHEDGROUPMEMBERS
+--
+
+CREATE SEQUENCE cachedgroupmembers_id_seq;
+
+CREATE TABLE CachedGroupMembers (
+ id int DEFAULT nextval('cachedgroupmembers_id_seq'),
+ GroupId int,
+ MemberId int,
+ Via int,
+ ImmediateParentId int,
+ Disabled int2 NOT NULL DEFAULT 0 ,
+ PRIMARY KEY (id)
+
);
-CREATE UNIQUE INDEX Keywords1 ON Keywords (Name, Parent);
-CREATE INDEX Keywords2 ON Keywords (Name);
-CREATE INDEX Keywords3 ON Keywords (Parent);
+
+CREATE INDEX CachedGroupMembers2 on CachedGroupMembers (MemberId);
+CREATE INDEX CachedGroupMembers3 on CachedGroupMembers (GroupId);
+CREATE INDEX DisGrouMem on CachedGroupMembers (GroupId,MemberId,Disabled);
+
+-- }}}
+
+-- {{{ Users
+
+
+
+--
+-- Sequences for table USERS
+--
+
+CREATE SEQUENCE users_id_seq;
+
CREATE TABLE Users (
- id serial NOT NULL ,
- Name varchar(120) NOT NULL ,
- Password varchar(40) ,
- Comments TEXT ,
- Signature TEXT ,
- EmailAddress varchar(120) ,
- FreeformContactInfo TEXT ,
- Organization varchar(200) ,
- Privileged integer ,
- RealName varchar(120) ,
- Nickname varchar(16) ,
- Lang varchar(16) ,
- EmailEncoding varchar(16) ,
- WebEncoding varchar(16) ,
- ExternalContactInfoId varchar(100) ,
- ContactInfoSystem varchar(30) ,
- ExternalAuthId varchar(100) ,
- AuthSystem varchar(30) ,
- Gecos varchar(16) ,
- HomePhone varchar(30) ,
- WorkPhone varchar(30) ,
- MobilePhone varchar(30) ,
- PagerPhone varchar(30) ,
- Address1 varchar(200) ,
- Address2 varchar(200) ,
- City varchar(100) ,
- State varchar(100) ,
- Zip varchar(16) ,
- Country varchar(50) ,
- Creator integer ,
- Created timestamp ,
- LastUpdatedBy integer ,
- LastUpdated timestamp ,
- Disabled int2 NOT NULL DEFAULT 0 ,
+ id INTEGER DEFAULT nextval('users_id_seq'),
+ Name varchar(200) NOT NULL ,
+ Password varchar(40) NULL ,
+ Comments text NULL ,
+ Signature text NULL ,
+ EmailAddress varchar(120) NULL ,
+ FreeformContactInfo text NULL ,
+ Organization varchar(200) NULL ,
+ RealName varchar(120) NULL ,
+ NickName varchar(16) NULL ,
+ Lang varchar(16) NULL ,
+ EmailEncoding varchar(16) NULL ,
+ WebEncoding varchar(16) NULL ,
+ ExternalContactInfoId varchar(100) NULL ,
+ ContactInfoSystem varchar(30) NULL ,
+ ExternalAuthId varchar(100) NULL ,
+ AuthSystem varchar(30) NULL ,
+ Gecos varchar(16) NULL ,
+ HomePhone varchar(30) NULL ,
+ WorkPhone varchar(30) NULL ,
+ MobilePhone varchar(30) NULL ,
+ PagerPhone varchar(30) NULL ,
+ Address1 varchar(200) NULL ,
+ Address2 varchar(200) NULL ,
+ City varchar(100) NULL ,
+ State varchar(100) NULL ,
+ Zip varchar(16) NULL ,
+ Country varchar(50) NULL ,
+ Timezone varchar(50) NULL ,
+ PGPKey text NULL,
+
+ Creator integer NOT NULL DEFAULT 0 ,
+ Created TIMESTAMP NULL ,
+ LastUpdatedBy integer NOT NULL DEFAULT 0 ,
+ LastUpdated TIMESTAMP NULL ,
PRIMARY KEY (id)
+
);
-CREATE UNIQUE INDEX Users1 ON Users (Name);
+
+
+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);
+
+
+-- }}}
+
+-- {{{ Tickets
+
+
+
+--
+-- Sequences for table TICKETS
+--
+
+CREATE SEQUENCE tickets_id_seq;
+
CREATE TABLE Tickets (
- id serial NOT NULL ,
- EffectiveId integer ,
- Queue integer ,
- Type varchar(16) ,
- IssueStatement integer ,
- Resolution integer ,
- Owner integer ,
- Subject varchar(200) DEFAULT '[no subject]' ,
- InitialPriority integer ,
- FinalPriority integer ,
- Priority integer ,
- Status varchar(10) ,
- TimeWorked integer ,
- TimeLeft integer ,
- Told timestamp ,
- Starts timestamp ,
- Started timestamp ,
- Due timestamp ,
- Resolved timestamp ,
- LastUpdatedBy integer ,
- LastUpdated timestamp ,
- Creator integer ,
- Created timestamp ,
+ id INTEGER DEFAULT nextval('tickets_id_seq'),
+ EffectiveId integer NOT NULL DEFAULT 0 ,
+ Queue integer NOT NULL DEFAULT 0 ,
+ Type varchar(16) NULL ,
+ IssueStatement integer NOT NULL DEFAULT 0 ,
+ Resolution integer NOT NULL DEFAULT 0 ,
+ Owner integer NOT NULL DEFAULT 0 ,
+ Subject varchar(200) NULL DEFAULT '[no subject]' ,
+ InitialPriority integer NOT NULL DEFAULT 0 ,
+ FinalPriority integer NOT NULL DEFAULT 0 ,
+ Priority integer NOT NULL DEFAULT 0 ,
+ TimeEstimated integer NOT NULL DEFAULT 0 ,
+ TimeWorked integer NOT NULL DEFAULT 0 ,
+ Status varchar(10) NULL ,
+ TimeLeft integer NOT NULL DEFAULT 0 ,
+ Told TIMESTAMP NULL ,
+ Starts TIMESTAMP NULL ,
+ Started TIMESTAMP NULL ,
+ Due TIMESTAMP NULL ,
+ Resolved TIMESTAMP NULL ,
+
+
+ LastUpdatedBy integer NOT NULL DEFAULT 0 ,
+ LastUpdated TIMESTAMP NULL ,
+ Creator integer NOT NULL DEFAULT 0 ,
+ Created TIMESTAMP NULL ,
Disabled int2 NOT NULL DEFAULT 0 ,
PRIMARY KEY (id)
+
);
-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 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) ;
+
+-- }}}
+
+-- {{{ ScripActions
+
+
+
+--
+-- Sequences for table SCRIPACTIONS
+--
+
+CREATE SEQUENCE scripactions_id_seq;
+
CREATE TABLE ScripActions (
- id serial NOT NULL ,
- Name varchar(255) ,
- Description varchar(255) ,
- ExecModule varchar(60) ,
- Argument varchar(255) ,
- Creator integer ,
- Created timestamp ,
- LastUpdatedBy integer ,
- LastUpdated timestamp ,
+ id INTEGER DEFAULT nextval('scripactions_id_seq'),
+ Name varchar(200) NULL ,
+ Description varchar(255) NULL ,
+ ExecModule varchar(60) NULL ,
+ Argument varchar(255) NULL ,
+ Creator integer NOT NULL DEFAULT 0 ,
+ Created TIMESTAMP NULL ,
+ LastUpdatedBy integer NOT NULL DEFAULT 0 ,
+ LastUpdated TIMESTAMP NULL ,
PRIMARY KEY (id)
+
);
+
+-- }}}
+
+-- {{{ Templates
+
+
+
+--
+-- Sequences for table TEMPLATES
+--
+
+CREATE SEQUENCE templates_id_seq;
+
CREATE TABLE Templates (
- id serial NOT NULL ,
+ id INTEGER DEFAULT nextval('templates_id_seq'),
+ Queue integer NOT NULL DEFAULT 0 ,
+ Name varchar(200) NOT NULL ,
+ Description varchar(255) NULL ,
+ Type varchar(16) NULL ,
+ Language varchar(16) NULL ,
+ TranslationOf integer NOT NULL DEFAULT 0 ,
+ Content text NULL ,
+ LastUpdated TIMESTAMP NULL ,
+ LastUpdatedBy integer NOT NULL DEFAULT 0 ,
+ Creator integer NOT NULL DEFAULT 0 ,
+ Created TIMESTAMP NULL ,
+ PRIMARY KEY (id)
+
+);
+
+-- }}}
+
+-- {{{ TicketCustomFieldValues
+
+
+
+--
+-- Sequences for table TICKETCUSTOMFIELDVALUES
+--
+
+CREATE SEQUENCE ticketcustomfieldvalues_id_s;
+
+CREATE TABLE TicketCustomFieldValues (
+ id INTEGER DEFAULT nextval('ticketcustomfieldvalues_id_s'),
+ Ticket int NOT NULL ,
+ CustomField int NOT NULL ,
+ Content varchar(255) NULL ,
+
+ Creator integer NOT NULL DEFAULT 0 ,
+ Created TIMESTAMP NULL ,
+ LastUpdatedBy integer NOT NULL DEFAULT 0 ,
+ LastUpdated TIMESTAMP NULL ,
+ PRIMARY KEY (id)
+
+);
+
+-- }}}
+
+-- {{{ CustomFields
+
+
+
+--
+-- Sequences for table CUSTOMFIELDS
+--
+
+CREATE SEQUENCE customfields_id_seq;
+
+CREATE TABLE CustomFields (
+ id INTEGER DEFAULT nextval('customfields_id_seq'),
+ Name varchar(200) NULL ,
+ Type varchar(200) NULL ,
Queue integer NOT NULL DEFAULT 0 ,
- Name varchar(40) NOT NULL ,
- Description varchar(120) ,
- Type varchar(16) ,
- Language varchar(16) ,
- TranslationOf integer ,
- Content TEXT ,
- LastUpdated timestamp ,
- LastUpdatedBy integer ,
- Creator integer ,
- Created timestamp ,
+ Description varchar(255) NULL ,
+ SortOrder integer NOT NULL DEFAULT 0 ,
+
+ Creator integer NOT NULL DEFAULT 0 ,
+ Created TIMESTAMP NULL ,
+ LastUpdatedBy integer NOT NULL DEFAULT 0 ,
+ LastUpdated TIMESTAMP NULL ,
+ Disabled int2 NOT NULL DEFAULT 0 ,
PRIMARY KEY (id)
+
+);
+
+-- }}}
+
+-- {{{ CustomFieldValues
+
+
+
+--
+-- Sequences for table CUSTOMFIELDVALUES
+--
+
+CREATE SEQUENCE customfieldvalues_id_seq;
+
+CREATE TABLE CustomFieldValues (
+ id INTEGER DEFAULT nextval('customfieldvalues_id_seq'),
+ CustomField int NOT NULL ,
+ Name varchar(200) NULL ,
+ Description varchar(255) NULL ,
+ SortOrder integer NOT NULL DEFAULT 0 ,
+
+ Creator integer NOT NULL DEFAULT 0 ,
+ Created TIMESTAMP NULL ,
+ LastUpdatedBy integer NOT NULL DEFAULT 0 ,
+ LastUpdated TIMESTAMP NULL ,
+ PRIMARY KEY (id)
+
+);
+
+-- }}}
+
+-- {{{ Sessions
+
+-- sessions is used by Apache::Session to keep sessions in the database.
+-- We should have a reaper script somewhere.
+
+CREATE TABLE sessions (
+ id char(32) NOT NULL,
+ a_session bytea,
+ LastUpdated TIMESTAMP not null default current_timestamp,
+ PRIMARY KEY (id)
+
);
+
+-- }}}
+
+
+
+COMMIT;
diff --git a/rt/etc/schema.mysql b/rt/etc/schema.mysql
index 7e715c201..46f8ec562 100755
--- a/rt/etc/schema.mysql
+++ b/rt/etc/schema.mysql
@@ -1,21 +1,9 @@
-CREATE TABLE KeywordSelects (
- id INTEGER NOT NULL AUTO_INCREMENT,
- Name varchar(255) NULL ,
- Keyword integer NULL ,
- Single integer NULL ,
- Depth integer NOT NULL DEFAULT 0 ,
- ObjectType varchar(32) NOT NULL ,
- ObjectField varchar(32) NULL ,
- ObjectValue varchar(255) NULL ,
- Disabled int2 NOT NULL DEFAULT 0 ,
- PRIMARY KEY (id)
-);
-CREATE INDEX KeywordSelects1 ON KeywordSelects (Keyword);
-CREATE INDEX KeywordSelects2 ON KeywordSelects (ObjectType, ObjectField, ObjectValue);
+# {{{ Attachments
+
CREATE TABLE Attachments (
id INTEGER NOT NULL AUTO_INCREMENT,
TransactionId integer NOT NULL ,
- Parent integer NULL ,
+ Parent integer NOT NULL DEFAULT 0 ,
MessageId varchar(160) NULL ,
Subject varchar(255) NULL ,
Filename varchar(255) NULL ,
@@ -23,161 +11,222 @@ CREATE TABLE Attachments (
ContentEncoding varchar(80) NULL ,
Content LONGTEXT NULL ,
Headers LONGTEXT NULL ,
- Creator integer NULL ,
+ Creator integer NOT NULL DEFAULT 0 ,
Created DATETIME NULL ,
PRIMARY KEY (id)
-);
-CREATE INDEX Attachments1 ON Attachments (Parent);
-CREATE INDEX Attachments2 ON Attachments (TransactionId);
-CREATE INDEX Attachments3 ON Attachments (Parent, TransactionId);
+) TYPE=InnoDB;
+
+CREATE INDEX Attachments1 ON Attachments (Parent) ;
+CREATE INDEX Attachments2 ON Attachments (TransactionId) ;
+CREATE INDEX Attachments3 ON Attachments (Parent, TransactionId) ;
+# }}}
+
+# {{{ Queues
CREATE TABLE Queues (
id INTEGER NOT NULL AUTO_INCREMENT,
- Name varchar(120) NOT NULL ,
- Description varchar(120) NULL ,
+ Name varchar(200) NOT NULL ,
+ Description varchar(255) NULL ,
CorrespondAddress varchar(120) NULL ,
CommentAddress varchar(120) NULL ,
- InitialPriority integer NULL ,
- FinalPriority integer NULL ,
- DefaultDueIn integer NULL ,
- Creator integer NULL ,
+ InitialPriority integer NOT NULL DEFAULT 0 ,
+ FinalPriority integer NOT NULL DEFAULT 0 ,
+ DefaultDueIn integer NOT NULL DEFAULT 0 ,
+ Creator integer NOT NULL DEFAULT 0 ,
Created DATETIME NULL ,
- LastUpdatedBy integer NULL ,
+ LastUpdatedBy integer NOT NULL DEFAULT 0 ,
LastUpdated DATETIME NULL ,
Disabled int2 NOT NULL DEFAULT 0 ,
PRIMARY KEY (id)
-);
-CREATE UNIQUE INDEX Queues1 ON Queues (Name);
+) TYPE=InnoDB;
+CREATE UNIQUE INDEX Queues1 ON Queues (Name) ;
+CREATE INDEX Queues2 ON Queues (Disabled) ;
+
+# }}}
+
+# {{{ Links
+
CREATE TABLE Links (
id INTEGER NOT NULL AUTO_INCREMENT,
Base varchar(240) NULL ,
Target varchar(240) NULL ,
Type varchar(20) NOT NULL ,
- LocalTarget integer NULL ,
- LocalBase integer NULL ,
- LastUpdatedBy integer NULL ,
+ LocalTarget integer NOT NULL DEFAULT 0 ,
+ LocalBase integer NOT NULL DEFAULT 0 ,
+ LastUpdatedBy integer NOT NULL DEFAULT 0 ,
LastUpdated DATETIME NULL ,
- Creator integer NULL ,
+ Creator integer NOT NULL DEFAULT 0 ,
Created DATETIME NULL ,
PRIMARY KEY (id)
-);
-CREATE UNIQUE INDEX Links1 ON Links (Base, Target, Type);
+) TYPE=InnoDB;
+
+CREATE UNIQUE INDEX Links1 ON Links (Base, Target, Type) ;
+CREATE INDEX Links2 ON Links (Base, Type) ;
+CREATE INDEX Links3 ON Links (Target, Type) ;
+
+# }}}
+
+# {{{ Principals
+
+CREATE TABLE Principals (
+ id INTEGER AUTO_INCREMENT not null,
+ PrincipalType VARCHAR(16) not null,
+ ObjectId integer, # foreign key to Users or Groups, depending
+ Disabled int2 NOT NULL DEFAULT 0 ,
+ PRIMARY KEY (id)
+) TYPE=InnoDB;
+
+CREATE INDEX Principals2 ON Principals (ObjectId);
+
+# }}}
+
+# {{{ Groups
+
CREATE TABLE Groups (
id INTEGER NOT NULL AUTO_INCREMENT,
- Name varchar(16) NULL ,
- Description varchar(64) NULL ,
- Pseudo integer NOT NULL DEFAULT 0 ,
- PRIMARY KEY (id)
-);
-CREATE UNIQUE INDEX Groups1 ON Groups (Name);
-CREATE TABLE Watchers (
- id INTEGER NOT NULL AUTO_INCREMENT,
- Type varchar(16) NULL ,
- Scope varchar(16) NULL ,
- Value integer NULL ,
- Email varchar(255) NULL ,
- Quiet integer NULL ,
- Owner integer NULL ,
- Creator integer NULL ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NULL ,
- LastUpdated DATETIME NULL ,
+ Name varchar(200) NULL ,
+ Description varchar(255) NULL ,
+ Domain varchar(64),
+ Type varchar(64),
+ Instance varchar(64),
PRIMARY KEY (id)
-);
-CREATE INDEX Watchers1 ON Watchers (Scope, Value, Type, Owner);
+) TYPE=InnoDB;
+
+CREATE INDEX Groups1 ON Groups (Domain,Instance,Type,id);
+CREATE INDEX Groups2 On Groups (Type, Instance, Domain);
+
+# }}}
+
+# {{{ ScripConditions
+
CREATE TABLE ScripConditions (
id INTEGER NOT NULL AUTO_INCREMENT,
- Name varchar(255) NULL ,
+ Name varchar(200) NULL ,
Description varchar(255) NULL ,
ExecModule varchar(60) NULL ,
Argument varchar(255) NULL ,
ApplicableTransTypes varchar(60) NULL ,
- Creator integer NULL ,
+
+ Creator integer NOT NULL DEFAULT 0 ,
Created DATETIME NULL ,
- LastUpdatedBy integer NULL ,
+ LastUpdatedBy integer NOT NULL DEFAULT 0 ,
LastUpdated DATETIME NULL ,
PRIMARY KEY (id)
-);
+) TYPE=InnoDB;
+
+# }}}
+
+# {{{ Transactions
CREATE TABLE Transactions (
id INTEGER NOT NULL AUTO_INCREMENT,
- EffectiveTicket integer NULL ,
- Ticket integer NULL ,
- TimeTaken integer NULL ,
+ EffectiveTicket integer NOT NULL DEFAULT 0 ,
+ Ticket 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 ,
- Creator integer 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);
+
+# }}}
+
+# {{{ Scrips
+
CREATE TABLE Scrips (
id INTEGER NOT NULL AUTO_INCREMENT,
- ScripCondition integer NULL ,
- ScripAction integer NULL ,
+ Description varchar(255),
+ ScripCondition integer NOT NULL DEFAULT 0 ,
+ ScripAction integer NOT NULL DEFAULT 0 ,
+ ConditionRules text NULL ,
+ ActionRules text NULL ,
+ CustomIsApplicableCode text NULL ,
+ CustomPrepareCode text NULL ,
+ CustomCommitCode text NULL ,
Stage varchar(32) NULL ,
- Queue integer NULL ,
- Template integer NULL ,
- Creator integer NULL ,
+ Queue integer NOT NULL DEFAULT 0 ,
+ Template integer NOT NULL DEFAULT 0 ,
+ Creator integer NOT NULL DEFAULT 0 ,
Created DATETIME NULL ,
- LastUpdatedBy integer NULL ,
+ LastUpdatedBy integer NOT NULL DEFAULT 0 ,
LastUpdated DATETIME NULL ,
PRIMARY KEY (id)
-);
+) TYPE=InnoDB;
+
+# }}}
+
+# {{{ ACL
CREATE TABLE ACL (
id INTEGER NOT NULL AUTO_INCREMENT,
- PrincipalId integer NULL ,
- PrincipalType varchar(25) NULL ,
- RightName varchar(25) NULL ,
- RightScope varchar(25) NULL ,
- RightAppliesTo integer NULL ,
+ PrincipalType varchar(25) NOT NULL, #"User" "Group", "Owner", "Cc" "AdminCc", "Requestor", "Requestor"
+
+ PrincipalId integer NOT NULL , #Foreign key to principals
+ RightName varchar(25) NOT NULL ,
+ ObjectType varchar(25) NOT NULL ,
+ ObjectId integer NOT NULL default 0,
+ DelegatedBy integer NOT NULL default 0, #foreign key to principals with a userid
+ DelegatedFrom integer NOT NULL default 0, #foreign key to ACL
PRIMARY KEY (id)
-);
-CREATE INDEX ACL1 ON ACL (RightScope, PrincipalId);
-CREATE INDEX ACL2 ON ACL (RightScope, RightAppliesTo, RightName, PrincipalType, PrincipalId);
+) TYPE=InnoDB;
+
+CREATE INDEX ACL1 on ACL(RightName, ObjectType, ObjectId,PrincipalType,PrincipalId);
+
+# }}}
+
+# {{{ GroupMembers
+
CREATE TABLE GroupMembers (
id INTEGER NOT NULL AUTO_INCREMENT,
- GroupId integer NULL ,
- UserId integer NULL ,
- PRIMARY KEY (id)
-);
-CREATE UNIQUE INDEX GroupMembers1 ON GroupMembers (GroupId, UserId);
-CREATE TABLE ObjectKeywords (
- id INTEGER NOT NULL AUTO_INCREMENT,
- Keyword integer NOT NULL ,
- KeywordSelect integer NOT NULL ,
- ObjectType varchar(32) NOT NULL ,
- ObjectId integer NOT NULL ,
- PRIMARY KEY (id)
-);
-CREATE UNIQUE INDEX ObjectKeywords1 ON ObjectKeywords (ObjectId, ObjectType, KeywordSelect, Keyword);
-CREATE INDEX ObjectKeywords2 ON ObjectKeywords (ObjectId, ObjectType);
-CREATE INDEX ObjectKeywords3 ON ObjectKeywords (Keyword);
-CREATE TABLE Keywords (
- id INTEGER NOT NULL AUTO_INCREMENT,
- Name varchar(255) NOT NULL ,
- Description varchar(255) NULL ,
- Parent integer NULL ,
- Disabled int2 NOT NULL DEFAULT 0 ,
+ GroupId integer NOT NULL DEFAULT 0,
+ MemberId integer NOT NULL DEFAULT 0, #Foreign key to Principals
PRIMARY KEY (id)
-);
-CREATE UNIQUE INDEX Keywords1 ON Keywords (Name, Parent);
-CREATE INDEX Keywords2 ON Keywords (Name);
-CREATE INDEX Keywords3 ON Keywords (Parent);
+) TYPE=InnoDB;
+CREATE UNIQUE INDEX GroupMembers1 on GroupMembers (GroupId, MemberId);
+
+
+# }}}
+
+# {{{ GroupMembersCache
+
+create table CachedGroupMembers (
+ id int auto_increment,
+ GroupId int, # foreign key to Principals
+ MemberId int, # foreign key to Principals
+ Via int, #foreign key to CachedGroupMembers. (may point to $self->id)
+ ImmediateParentId int, #foreign key to prinicpals.
+ # this points to the group that the member is
+ # a member of, for ease of deletes.
+ Disabled int2 NOT NULL DEFAULT 0 , # if this cached group member is a member of this group by way of a disabled
+ # group or this group is disabled, this will be set to 1
+ # this allows us to not find members of disabled subgroups when listing off
+ # group members recursively.
+ # Also, this allows us to have the ACL system elide members of disabled groups
+ PRIMARY KEY (id)
+) TYPE=InnoDB;
+
+CREATE INDEX DisGrouMem on CachedGroupMembers (GroupId,MemberId,Disabled);
+CREATE INDEX GrouMem on CachedGroupMembers (GroupId,MemberId);
+
+# }}}
+
+# {{{ Users
+
CREATE TABLE Users (
id INTEGER NOT NULL AUTO_INCREMENT,
- Name varchar(120) NOT NULL ,
+ Name varchar(200) NOT NULL ,
Password varchar(40) NULL ,
Comments blob NULL ,
Signature blob NULL ,
EmailAddress varchar(120) NULL ,
FreeformContactInfo blob NULL ,
Organization varchar(200) NULL ,
- Privileged integer NULL ,
RealName varchar(120) NULL ,
- Nickname varchar(16) NULL ,
+ NickName varchar(16) NULL ,
Lang varchar(16) NULL ,
EmailEncoding varchar(16) NULL ,
WebEncoding varchar(16) NULL ,
@@ -196,72 +245,172 @@ CREATE TABLE Users (
State varchar(100) NULL ,
Zip varchar(16) NULL ,
Country varchar(50) NULL ,
- Creator integer NULL ,
+ Timezone varchar(50) NULL ,
+ PGPKey text NULL,
+
+ Creator integer NOT NULL DEFAULT 0 ,
Created DATETIME NULL ,
- LastUpdatedBy integer NULL ,
+ LastUpdatedBy integer NOT NULL DEFAULT 0 ,
LastUpdated DATETIME NULL ,
- Disabled int2 NOT NULL DEFAULT 0 ,
PRIMARY KEY (id)
-);
-CREATE UNIQUE INDEX Users1 ON Users (Name);
+) TYPE=InnoDB;
+
+
+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);
+
+
+# }}}
+
+# {{{ Tickets
+
CREATE TABLE Tickets (
id INTEGER NOT NULL AUTO_INCREMENT,
- EffectiveId integer NULL ,
- Queue integer NULL ,
+ EffectiveId integer NOT NULL DEFAULT 0 ,
+ Queue integer NOT NULL DEFAULT 0 ,
Type varchar(16) NULL ,
- IssueStatement integer NULL ,
- Resolution integer NULL ,
- Owner integer NULL ,
+ IssueStatement integer NOT NULL DEFAULT 0 ,
+ Resolution integer NOT NULL DEFAULT 0 ,
+ Owner integer NOT NULL DEFAULT 0 ,
Subject varchar(200) NULL DEFAULT '[no subject]' ,
- InitialPriority integer NULL ,
- FinalPriority integer NULL ,
- Priority integer NULL ,
+ InitialPriority integer NOT NULL DEFAULT 0 ,
+ FinalPriority integer NOT NULL DEFAULT 0 ,
+ Priority integer NOT NULL DEFAULT 0 ,
+ TimeEstimated integer NOT NULL DEFAULT 0 ,
+ TimeWorked integer NOT NULL DEFAULT 0 ,
Status varchar(10) NULL ,
- TimeWorked integer NULL ,
- TimeLeft integer NULL ,
+ TimeLeft integer NOT NULL DEFAULT 0 ,
Told DATETIME NULL ,
Starts DATETIME NULL ,
Started DATETIME NULL ,
Due DATETIME NULL ,
Resolved DATETIME NULL ,
- LastUpdatedBy integer NULL ,
+
+
+ LastUpdatedBy integer NOT NULL DEFAULT 0 ,
LastUpdated DATETIME NULL ,
- Creator integer NULL ,
+ Creator integer NOT NULL DEFAULT 0 ,
Created DATETIME NULL ,
Disabled int2 NOT NULL DEFAULT 0 ,
PRIMARY KEY (id)
-);
-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);
+) TYPE=InnoDB;
+
+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) ;
+
+# }}}
+
+# {{{ ScripActions
+
CREATE TABLE ScripActions (
id INTEGER NOT NULL AUTO_INCREMENT,
- Name varchar(255) NULL ,
+ Name varchar(200) NULL ,
Description varchar(255) NULL ,
ExecModule varchar(60) NULL ,
Argument varchar(255) NULL ,
- Creator integer NULL ,
+ Creator integer NOT NULL DEFAULT 0 ,
Created DATETIME NULL ,
- LastUpdatedBy integer NULL ,
+ LastUpdatedBy integer NOT NULL DEFAULT 0 ,
LastUpdated DATETIME NULL ,
PRIMARY KEY (id)
-);
+) TYPE=InnoDB;
+
+# }}}
+
+# {{{ Templates
+
CREATE TABLE Templates (
id INTEGER NOT NULL AUTO_INCREMENT,
Queue integer NOT NULL DEFAULT 0 ,
- Name varchar(40) NOT NULL ,
- Description varchar(120) NULL ,
+ Name varchar(200) NOT NULL ,
+ Description varchar(255) NULL ,
Type varchar(16) NULL ,
Language varchar(16) NULL ,
- TranslationOf integer NULL ,
+ TranslationOf integer NOT NULL DEFAULT 0 ,
Content blob NULL ,
LastUpdated DATETIME NULL ,
- LastUpdatedBy integer NULL ,
- Creator integer NULL ,
+ LastUpdatedBy integer NOT NULL DEFAULT 0 ,
+ Creator integer NOT NULL DEFAULT 0 ,
+ Created DATETIME NULL ,
+ PRIMARY KEY (id)
+) TYPE=InnoDB;
+
+# }}}
+
+# {{{ TicketCustomFieldValues
+
+CREATE TABLE TicketCustomFieldValues (
+ id INTEGER NOT NULL AUTO_INCREMENT,
+ Ticket int NOT NULL ,
+ CustomField int NOT NULL ,
+ Content varchar(255) NULL ,
+
+ Creator integer NOT NULL DEFAULT 0 ,
Created DATETIME NULL ,
+ LastUpdatedBy integer NOT NULL DEFAULT 0 ,
+ LastUpdated DATETIME NULL ,
+ PRIMARY KEY (id)
+) TYPE=InnoDB;
+
+# }}}
+
+# {{{ CustomFields
+
+CREATE TABLE CustomFields (
+ id INTEGER NOT NULL AUTO_INCREMENT,
+ Name varchar(200) NULL ,
+ Type varchar(200) NULL ,
+ Queue integer NOT NULL DEFAULT 0 ,
+ Description varchar(255) 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 ,
+ Disabled int2 NOT NULL DEFAULT 0 ,
+ PRIMARY KEY (id)
+) TYPE=InnoDB;
+
+CREATE INDEX CustomFields1 on CustomFields (Disabled, Queue);
+
+
+# }}}
+
+# {{{ CustomFieldValues
+
+CREATE TABLE CustomFieldValues (
+ id INTEGER NOT NULL AUTO_INCREMENT,
+ CustomField int NOT NULL ,
+ Name varchar(200) NULL ,
+ Description varchar(255) 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;
+
+# }}}
+
+# {{{ Sessions
+
+# sessions is used by Apache::Session to keep sessions in the database.
+# We should have a reaper script somewhere.
+
+CREATE TABLE sessions (
+ id char(32) NOT NULL,
+ a_session LONGTEXT,
+ LastUpdated TIMESTAMP,
+ PRIMARY KEY (id)
);
+
+# }}}
diff --git a/rt/etc/schema.pm b/rt/etc/schema.pm
deleted file mode 100644
index 44e143ecd..000000000
--- a/rt/etc/schema.pm
+++ /dev/null
@@ -1,349 +0,0 @@
-# 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'] ],
-},
-
-};