summaryrefslogtreecommitdiff
path: root/rt/etc/upgrade
diff options
context:
space:
mode:
Diffstat (limited to 'rt/etc/upgrade')
-rw-r--r--rt/etc/upgrade/3.1.0/acl.Informix4
-rwxr-xr-xrt/etc/upgrade/3.1.0/acl.Oracle4
-rwxr-xr-xrt/etc/upgrade/3.1.0/acl.Pg19
-rwxr-xr-xrt/etc/upgrade/3.1.0/acl.SQLite4
-rwxr-xr-xrt/etc/upgrade/3.1.0/acl.mysql4
-rw-r--r--rt/etc/upgrade/3.1.0/content2
-rw-r--r--rt/etc/upgrade/3.1.0/schema.Informix17
-rw-r--r--rt/etc/upgrade/3.1.0/schema.Oracle17
-rwxr-xr-xrt/etc/upgrade/3.1.0/schema.Pg25
-rw-r--r--rt/etc/upgrade/3.1.0/schema.SQLite21
-rwxr-xr-xrt/etc/upgrade/3.1.0/schema.mysql21
-rw-r--r--rt/etc/upgrade/3.1.15/content7
-rw-r--r--rt/etc/upgrade/3.1.17/content22
-rw-r--r--rt/etc/upgrade/3.3.0/acl.Informix4
-rw-r--r--rt/etc/upgrade/3.3.0/acl.Oracle4
-rw-r--r--rt/etc/upgrade/3.3.0/acl.Pg20
-rw-r--r--rt/etc/upgrade/3.3.0/acl.SQLite4
-rw-r--r--rt/etc/upgrade/3.3.0/acl.mysql4
-rw-r--r--rt/etc/upgrade/3.3.0/content1
-rw-r--r--rt/etc/upgrade/3.3.0/schema.Oracle65
-rw-r--r--rt/etc/upgrade/3.3.0/schema.Pg74
-rw-r--r--rt/etc/upgrade/3.3.0/schema.mysql65
-rw-r--r--rt/etc/upgrade/3.3.11/acl.Oracle4
-rw-r--r--rt/etc/upgrade/3.3.11/acl.Pg4
-rw-r--r--rt/etc/upgrade/3.3.11/acl.SQLite4
-rw-r--r--rt/etc/upgrade/3.3.11/acl.mysql4
-rw-r--r--rt/etc/upgrade/3.3.11/content1
-rw-r--r--rt/etc/upgrade/3.3.11/schema.Oracle0
-rw-r--r--rt/etc/upgrade/3.3.11/schema.Pg11
-rw-r--r--rt/etc/upgrade/3.3.11/schema.SQLite0
-rw-r--r--rt/etc/upgrade/3.3.11/schema.mysql5
-rw-r--r--rt/etc/upgrade/3.5.1/content36
32 files changed, 477 insertions, 0 deletions
diff --git a/rt/etc/upgrade/3.1.0/acl.Informix b/rt/etc/upgrade/3.1.0/acl.Informix
new file mode 100644
index 000000000..73c16ae03
--- /dev/null
+++ b/rt/etc/upgrade/3.1.0/acl.Informix
@@ -0,0 +1,4 @@
+sub acl {
+ return ();
+}
+1;
diff --git a/rt/etc/upgrade/3.1.0/acl.Oracle b/rt/etc/upgrade/3.1.0/acl.Oracle
new file mode 100755
index 000000000..73c16ae03
--- /dev/null
+++ b/rt/etc/upgrade/3.1.0/acl.Oracle
@@ -0,0 +1,4 @@
+sub acl {
+ return ();
+}
+1;
diff --git a/rt/etc/upgrade/3.1.0/acl.Pg b/rt/etc/upgrade/3.1.0/acl.Pg
new file mode 100755
index 000000000..809e99ab3
--- /dev/null
+++ b/rt/etc/upgrade/3.1.0/acl.Pg
@@ -0,0 +1,19 @@
+sub acl {
+ my $dbh = shift;
+
+ my @acls;
+
+ my @tables = qw (
+ attributes_id_seq
+ attributes
+ );
+
+ foreach my $table (@tables) {
+ push @acls,
+ "GRANT SELECT, INSERT, UPDATE, DELETE ON $table to "
+ . $RT::DatabaseUser . ";";
+
+ }
+ return (@acls);
+}
+1;
diff --git a/rt/etc/upgrade/3.1.0/acl.SQLite b/rt/etc/upgrade/3.1.0/acl.SQLite
new file mode 100755
index 000000000..73c16ae03
--- /dev/null
+++ b/rt/etc/upgrade/3.1.0/acl.SQLite
@@ -0,0 +1,4 @@
+sub acl {
+ return ();
+}
+1;
diff --git a/rt/etc/upgrade/3.1.0/acl.mysql b/rt/etc/upgrade/3.1.0/acl.mysql
new file mode 100755
index 000000000..73c16ae03
--- /dev/null
+++ b/rt/etc/upgrade/3.1.0/acl.mysql
@@ -0,0 +1,4 @@
+sub acl {
+ return ();
+}
+1;
diff --git a/rt/etc/upgrade/3.1.0/content b/rt/etc/upgrade/3.1.0/content
new file mode 100644
index 000000000..3117dafc5
--- /dev/null
+++ b/rt/etc/upgrade/3.1.0/content
@@ -0,0 +1,2 @@
+# nothing to do
+1;
diff --git a/rt/etc/upgrade/3.1.0/schema.Informix b/rt/etc/upgrade/3.1.0/schema.Informix
new file mode 100644
index 000000000..722eb70b3
--- /dev/null
+++ b/rt/etc/upgrade/3.1.0/schema.Informix
@@ -0,0 +1,17 @@
+CREATE TABLE Attributes (
+ id SERIAL,
+ Name VARCHAR(255) DEFAULT '' NOT NULL,
+ Description VARCHAR(255) DEFAULT NULL,
+ Content BYTE,
+ ContentType VARCHAR(16),
+ ObjectType VARCHAR(25) NOT NULL,
+ ObjectId INTEGER DEFAULT 0 NOT NULL,
+ Creator INTEGER DEFAULT 0 NOT NULL,
+ Created DATETIME YEAR TO SECOND,
+ LastUpdatedBy INTEGER DEFAULT 0 NOT NULL,
+ LastUpdated DATETIME YEAR TO SECOND,
+ PRIMARY KEY (id)
+);
+
+CREATE INDEX Attributes1 on Attributes(Name);
+CREATE INDEX Attributes2 on Attributes(ObjectType, ObjectId);
diff --git a/rt/etc/upgrade/3.1.0/schema.Oracle b/rt/etc/upgrade/3.1.0/schema.Oracle
new file mode 100644
index 000000000..a8aae18b5
--- /dev/null
+++ b/rt/etc/upgrade/3.1.0/schema.Oracle
@@ -0,0 +1,17 @@
+CREATE SEQUENCE ATTRIBUTES_seq;
+CREATE TABLE Attributes (
+ id NUMBER(11,0) PRIMARY KEY,
+ Name VARCHAR2(255) NOT NULL,
+ Description VARCHAR2(255),
+ Content CLOB,
+ ContentType VARCHAR(16),
+ ObjectType VARCHAR2(25) NOT NULL,
+ ObjectId NUMBER(11,0) DEFAULT 0 NOT NULL,
+ Creator NUMBER(11,0) DEFAULT 0 NOT NULL,
+ Created DATE,
+ LastUpdatedBy NUMBER(11,0) DEFAULT 0 NOT NULL,
+ LastUpdated DATE
+);
+
+CREATE INDEX Attributes1 on Attributes(Name);
+CREATE INDEX Attributes2 on Attributes(ObjectType, ObjectId);
diff --git a/rt/etc/upgrade/3.1.0/schema.Pg b/rt/etc/upgrade/3.1.0/schema.Pg
new file mode 100755
index 000000000..94c3fe70d
--- /dev/null
+++ b/rt/etc/upgrade/3.1.0/schema.Pg
@@ -0,0 +1,25 @@
+-- {{{ Attributes
+
+CREATE SEQUENCE attributes_id_seq;
+
+CREATE TABLE Attributes (
+ id INTEGER DEFAULT nextval('attributes_id_seq'),
+ Name varchar(255) NOT NULL ,
+ Description varchar(255) NULL ,
+ Content text,
+ ContentType varchar(16),
+ ObjectType varchar(64),
+ ObjectId integer,
+ Creator integer NOT NULL DEFAULT 0 ,
+ Created TIMESTAMP NULL ,
+ LastUpdatedBy integer NOT NULL DEFAULT 0 ,
+ LastUpdated TIMESTAMP NULL ,
+ PRIMARY KEY (id)
+
+);
+
+CREATE INDEX Attributes1 on Attributes(Name);
+CREATE INDEX Attributes2 on Attributes(ObjectType, ObjectId);
+
+-- }}}
+
diff --git a/rt/etc/upgrade/3.1.0/schema.SQLite b/rt/etc/upgrade/3.1.0/schema.SQLite
new file mode 100644
index 000000000..1dd466fa7
--- /dev/null
+++ b/rt/etc/upgrade/3.1.0/schema.SQLite
@@ -0,0 +1,21 @@
+--- {{{ Attributes
+CREATE TABLE Attributes (
+ id INTEGER PRIMARY KEY ,
+ Name varchar(255) NOT NULL ,
+ Description varchar(255) NULL ,
+ Content LONGTEXT NULL ,
+ ContentType varchar(16),
+ ObjectType varchar(25) NOT NULL ,
+ ObjectId INTEGER default 0,
+ Creator integer NULL ,
+ Created DATETIME NULL ,
+ LastUpdatedBy integer NULL ,
+ LastUpdated DATETIME NULL
+
+) ;
+
+CREATE INDEX Attributes1 on Attributes(Name);
+CREATE INDEX Attributes2 on Attributes(ObjectType, ObjectId);
+
+--- }}}
+
diff --git a/rt/etc/upgrade/3.1.0/schema.mysql b/rt/etc/upgrade/3.1.0/schema.mysql
new file mode 100755
index 000000000..c4a345d3e
--- /dev/null
+++ b/rt/etc/upgrade/3.1.0/schema.mysql
@@ -0,0 +1,21 @@
+# {{{ 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);
+
+# }}}
diff --git a/rt/etc/upgrade/3.1.15/content b/rt/etc/upgrade/3.1.15/content
new file mode 100644
index 000000000..d23125a0b
--- /dev/null
+++ b/rt/etc/upgrade/3.1.15/content
@@ -0,0 +1,7 @@
+@Scrips = (
+ { ScripCondition => 'On Owner Change',
+ ScripAction => 'Notify Owner',
+ Template => 'Transaction' },
+);
+
+1;
diff --git a/rt/etc/upgrade/3.1.17/content b/rt/etc/upgrade/3.1.17/content
new file mode 100644
index 000000000..1d648d82f
--- /dev/null
+++ b/rt/etc/upgrade/3.1.17/content
@@ -0,0 +1,22 @@
+@ScripActions = (
+ { Name => 'Notify Ccs as Comment', # loc
+ Description => 'Sends mail to the Ccs as a comment', # loc
+ ExecModule => 'NotifyAsComment',
+ Argument => 'Cc' },
+ { Name => 'Notify Ccs', # loc
+ Description => 'Sends mail to the Ccs', # loc
+ ExecModule => 'Notify',
+ Argument => 'Cc' },
+);
+
+
+@ScripConditions = (
+ {
+ Name => 'On Priority Change', # loc
+ Description => 'Whenever a ticket\'s priority changes', # loc
+ ApplicableTransTypes => 'Set',
+ ExecModule => 'PriorityChange',
+ },
+);
+
+1;
diff --git a/rt/etc/upgrade/3.3.0/acl.Informix b/rt/etc/upgrade/3.3.0/acl.Informix
new file mode 100644
index 000000000..73c16ae03
--- /dev/null
+++ b/rt/etc/upgrade/3.3.0/acl.Informix
@@ -0,0 +1,4 @@
+sub acl {
+ return ();
+}
+1;
diff --git a/rt/etc/upgrade/3.3.0/acl.Oracle b/rt/etc/upgrade/3.3.0/acl.Oracle
new file mode 100644
index 000000000..73c16ae03
--- /dev/null
+++ b/rt/etc/upgrade/3.3.0/acl.Oracle
@@ -0,0 +1,4 @@
+sub acl {
+ return ();
+}
+1;
diff --git a/rt/etc/upgrade/3.3.0/acl.Pg b/rt/etc/upgrade/3.3.0/acl.Pg
new file mode 100644
index 000000000..2069a198e
--- /dev/null
+++ b/rt/etc/upgrade/3.3.0/acl.Pg
@@ -0,0 +1,20 @@
+sub acl {
+ my $dbh = shift;
+
+ my @acls;
+
+ my @tables = qw (
+ objectcustomfieldvalues
+ objectcustomfields_id_s
+ objectcustomfields
+ );
+
+ foreach my $table (@tables) {
+ push @acls,
+ "GRANT SELECT, INSERT, UPDATE, DELETE ON $table to "
+ . $RT::DatabaseUser . ";";
+
+ }
+ return (@acls);
+}
+1;
diff --git a/rt/etc/upgrade/3.3.0/acl.SQLite b/rt/etc/upgrade/3.3.0/acl.SQLite
new file mode 100644
index 000000000..73c16ae03
--- /dev/null
+++ b/rt/etc/upgrade/3.3.0/acl.SQLite
@@ -0,0 +1,4 @@
+sub acl {
+ return ();
+}
+1;
diff --git a/rt/etc/upgrade/3.3.0/acl.mysql b/rt/etc/upgrade/3.3.0/acl.mysql
new file mode 100644
index 000000000..73c16ae03
--- /dev/null
+++ b/rt/etc/upgrade/3.3.0/acl.mysql
@@ -0,0 +1,4 @@
+sub acl {
+ return ();
+}
+1;
diff --git a/rt/etc/upgrade/3.3.0/content b/rt/etc/upgrade/3.3.0/content
new file mode 100644
index 000000000..0afc6045c
--- /dev/null
+++ b/rt/etc/upgrade/3.3.0/content
@@ -0,0 +1 @@
+1;
diff --git a/rt/etc/upgrade/3.3.0/schema.Oracle b/rt/etc/upgrade/3.3.0/schema.Oracle
new file mode 100644
index 000000000..f81feeb79
--- /dev/null
+++ b/rt/etc/upgrade/3.3.0/schema.Oracle
@@ -0,0 +1,65 @@
+alter Table Transactions ADD ObjectType VARCHAR2(64);
+UPDATE Transactions set ObjectType = 'RT::Ticket';
+ALTER TABLE Transactions modify ObjectType NOT NULL;
+ALTER TABLE Transactions drop column EffectiveTicket;
+ALTER TABLE Transactions ADD ReferenceType VARCHAR2(255) NULL;
+ALTER TABLE Transactions ADD OldReference NUMBER(11,0) NULL;
+ALTER TABLE Transactions ADD NewReference NUMBER(11,0) NULL;
+DROP INDEX transactions1;
+ALTER TABLE Transactions rename column Ticket to ObjectId;
+CREATE INDEX Transactions1 ON Transactions (ObjectType, ObjectId);
+
+ALTER TABLE TicketCustomFieldValues rename to ObjectCustomFieldValues;
+ALTER TABLE ObjectCustomFieldValues rename column Ticket to ObjectId;
+ALTER TABLE ObjectCustomFieldValues ADD ObjectType VARCHAR2(255);
+UPDATE ObjectCustomFieldValues set ObjectType = 'RT::Ticket';
+ALTER TABLE ObjectCustomFieldValues MODIFY ObjectType NOT NULL;
+ALTER TABLE ObjectCustomFieldValues ADD Disabled NUMBER(11,0);
+ALTER TABLE ObjectCustomFieldValues MODIFY Disabled default 0;
+UPDATE ObjectCustomFieldValues SET Disabled = 0;
+ALTER TABLE ObjectCustomFieldValues MODIFY Disabled NOT NULL;
+ALTER TABLE ObjectCustomFieldValues ADD LargeContent CLOB NULL;
+ALTER TABLE ObjectCustomFieldValues ADD ContentType VARCHAR2(80) NULL;
+ALTER TABLE ObjectCustomFieldValues ADD ContentEncoding VARCHAR2(80) NULL;
+ALTER TABLE ObjectCustomFieldValues ADD SortOrder NUMBER(11,0) DEFAULT 0 NOT NULL;
+
+
+
+CREATE INDEX ObjectCustomFieldValues1 on ObjectCustomFieldValues (CustomField,ObjectType,ObjectId,Content);
+CREATE INDEX ObjectCustomFieldValues2 on ObjectCustomFieldValues (CustomField,ObjectType,ObjectId);
+
+
+
+CREATE SEQUENCE OBJECTCUSTOMFIELDS_seq;
+CREATE TABLE ObjectCustomFields (
+ id NUMBER(11,0)
+ CONSTRAINT ObjectCustomFields_Key PRIMARY KEY,
+ CustomField NUMBER(11,0) NOT NULL,
+ ObjectId NUMBER(11,0) NOT NULL,
+ SortOrder NUMBER(11,0) DEFAULT 0 NOT NULL,
+ Creator NUMBER(11,0) DEFAULT 0 NOT NULL,
+ Created DATE,
+ LastUpdatedBy NUMBER(11,0) DEFAULT 0 NOT NULL,
+ LastUpdated DATE
+);
+
+
+INSERT into ObjectCustomFields (id, CustomField, ObjectId, SortOrder, Creator, LastUpdatedBy) SELECT objectcustomfields_seq.nextval, id, Queue, SortOrder, Creator, LastUpdatedBy from CustomFields;
+
+ALTER TABLE CustomFields ADD LookupType VARCHAR2(255);
+ALTER TABLE CustomFields ADD Repeated NUMBER(11,0);
+ALTER TABLE CustomFields ADD Pattern VARCHAR2(255) NULL;
+ALTER TABLE CustomFields ADD MaxValues NUMBER(11,0);
+
+UPDATE CustomFields SET MaxValues = 0 WHERE Type LIKE '%Multiple';
+UPDATE CustomFields SET MaxValues = 1 WHERE Type LIKE '%Single';
+UPDATE CustomFields SET Type = 'Select' WHERE Type LIKE 'Select%';
+UPDATE CustomFields SET Type = 'Freeform' WHERE Type LIKE 'Freeform%';
+UPDATE CustomFields Set LookupType = 'RT::Queue-RT::Ticket';
+ALTER TABLE CustomFields MODIFY LookupType NOT NULL;
+UPDATE CustomFields Set Repeated = 0;
+ALTER TABLE CustomFields MODIFY Repeated DEFAULT 0;
+ALTER TABLE CustomFields MODIFY Repeated NOT NULL;
+ALTER TABLE CustomFields drop column Queue;
+
+
diff --git a/rt/etc/upgrade/3.3.0/schema.Pg b/rt/etc/upgrade/3.3.0/schema.Pg
new file mode 100644
index 000000000..427eae798
--- /dev/null
+++ b/rt/etc/upgrade/3.3.0/schema.Pg
@@ -0,0 +1,74 @@
+alter Table Transactions ADD Column ObjectType varchar(64);
+update Transactions set ObjectType = 'RT::Ticket';
+ALTER TABLE Transactions ALTER COLUMN ObjectType SET NOT NULL;
+alter table Transactions drop column EffectiveTicket;
+alter table Transactions add column ReferenceType varchar(255) NULL;
+alter table Transactions add column OldReference integer NULL;
+alter table Transactions add column NewReference integer NULL;
+drop index transactions1;
+alter table Transactions rename column Ticket to ObjectId;
+
+
+CREATE INDEX Transactions1 ON Transactions (ObjectType, ObjectId);
+
+alter table TicketCustomFieldValues rename to ObjectCustomFieldValues;
+
+alter table ObjectCustomFieldValues rename column Ticket to ObjectId;
+
+alter table objectcustomfieldvalues add column ObjectType varchar(255);
+
+update objectcustomfieldvalues set ObjectType = 'RT::Ticket';
+
+ALTER TABLE objectcustomfieldvalues ALTER COLUMN ObjectType SET NOT NULL;
+
+alter table objectcustomfieldvalues add column Current int;
+
+alter table objectcustomfieldvalues alter column Current SET default 1;
+
+UPDATE objectcustomfieldvalues SET Current = 1;
+
+alter table objectcustomfieldvalues add column LargeContent TEXT NULL;
+
+alter table objectcustomfieldvalues add column ContentType varchar(80) NULL;
+
+alter table objectcustomfieldvalues add column ContentEncoding varchar(80) NULL;
+
+create index ObjectCustomFieldValues1 on objectcustomfieldvalues (CustomField,ObjectType,ObjectId,Content);
+
+create index ObjectCustomFieldValues2 on objectcustomfieldvalues (CustomField,ObjectType,ObjectId);
+
+
+CREATE SEQUENCE objectcustomfields_id_s;
+
+CREATE TABLE ObjectCustomFields (
+ id INTEGER DEFAULT nextval('objectcustomfields_id_s'),
+ CustomField integer NOT NULL,
+ ObjectId integer NOT 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)
+
+);
+
+
+INSERT into ObjectCustomFields (CustomField, ObjectId, SortOrder, Creator, LastUpdatedBy) SELECT id, Queue, SortOrder, Creator, LastUpdatedBy from CustomFields;
+
+alter table CustomFields add column LookupType varchar(255);
+alter table CustomFields add column Repeated int2;
+alter table CustomFields add column Pattern varchar(255) NULL;
+alter table CustomFields add column MaxValues integer;
+
+UPDATE CustomFields SET MaxValues = 0 WHERE Type LIKE '%Multiple';
+UPDATE CustomFields SET MaxValues = 1 WHERE Type LIKE '%Single';
+UPDATE CustomFields SET Type = 'Select' WHERE Type LIKE 'Select%';
+UPDATE CustomFields SET Type = 'Freeform' WHERE Type LIKE 'Freeform%';
+UPDATE CustomFields Set LookupType = 'RT::Queue-RT::Ticket';
+ALTER TABLE CustomFields ALTER COLUMN LookupType SET NOT NULL;
+UPDATE CustomFields Set Repeated = 0;
+ALTER TABLE CustomFields ALTER COLUMN Repeated SET DEFAULT 0;
+ALTER TABLE CustomFields ALTER COLUMN Repeated SET NOT NULL;
+alter table CustomFields drop column Queue;
diff --git a/rt/etc/upgrade/3.3.0/schema.mysql b/rt/etc/upgrade/3.3.0/schema.mysql
new file mode 100644
index 000000000..0e33a2819
--- /dev/null
+++ b/rt/etc/upgrade/3.3.0/schema.mysql
@@ -0,0 +1,65 @@
+alter Table Transactions ADD Column (ObjectType varchar(64) not null);
+update Transactions set ObjectType = 'RT::Ticket';
+alter table Transactions drop column EffectiveTicket;
+alter table Transactions add column ReferenceType varchar(255) NULL;
+alter table Transactions add column OldReference integer NULL;
+alter table Transactions add column NewReference integer NULL;
+alter table Transactions drop index transactions1;
+alter table Transactions change Ticket ObjectId integer NOT NULL DEFAULT 0 ;
+
+CREATE INDEX Transactions1 ON Transactions (ObjectType, ObjectId);
+
+alter table TicketCustomFieldValues rename ObjectCustomFieldValues;
+
+alter table ObjectCustomFieldValues change Ticket ObjectId integer NOT NULL DEFAULT 0 ;
+
+alter table ObjectCustomFieldValues add column ObjectType varchar(255) not null;
+
+update ObjectCustomFieldValues set ObjectType = 'RT::Ticket';
+
+alter table ObjectCustomFieldValues add column Current bool default 1;
+
+alter table ObjectCustomFieldValues add column LargeContent LONGTEXT NULL;
+
+alter table ObjectCustomFieldValues add column ContentType varchar(80) NULL;
+
+alter table ObjectCustomFieldValues add column ContentEncoding varchar(80) NULL;
+
+# These could fail if there's no such index and there's no "drop index if exists" syntax
+#alter table ObjectCustomFieldValues drop index ticketcustomfieldvalues1;
+#alter table ObjectCustomFieldValues drop index ticketcustomfieldvalues2;
+
+alter table ObjectCustomFieldValues add index ObjectCustomFieldValues1 (Content);
+
+alter table ObjectCustomFieldValues add index ObjectCustomFieldValues2 (CustomField,ObjectType,ObjectId);
+
+
+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;
+
+
+INSERT into ObjectCustomFields (id, CustomField, ObjectId, SortOrder, Creator, LastUpdatedBy) SELECT null, id, Queue, SortOrder, Creator, LastUpdatedBy from CustomFields;
+
+alter table CustomFields add column LookupType varchar(255) NOT NULL;
+alter table CustomFields add column Repeated int2 NOT NULL DEFAULT 0 ;
+alter table CustomFields add column Pattern varchar(255) NULL;
+alter table CustomFields add column MaxValues integer;
+# See above
+# alter table CustomFields drop index CustomFields1;
+
+UPDATE CustomFields SET MaxValues = 0 WHERE Type LIKE '%Multiple';
+UPDATE CustomFields SET MaxValues = 1 WHERE Type LIKE '%Single';
+UPDATE CustomFields SET Type = 'Select' WHERE Type LIKE 'Select%';
+UPDATE CustomFields SET Type = 'Freeform' WHERE Type LIKE 'Freeform%';
+UPDATE CustomFields Set LookupType = 'RT::Queue-RT::Ticket';
+alter table CustomFields drop column Queue;
diff --git a/rt/etc/upgrade/3.3.11/acl.Oracle b/rt/etc/upgrade/3.3.11/acl.Oracle
new file mode 100644
index 000000000..73c16ae03
--- /dev/null
+++ b/rt/etc/upgrade/3.3.11/acl.Oracle
@@ -0,0 +1,4 @@
+sub acl {
+ return ();
+}
+1;
diff --git a/rt/etc/upgrade/3.3.11/acl.Pg b/rt/etc/upgrade/3.3.11/acl.Pg
new file mode 100644
index 000000000..73c16ae03
--- /dev/null
+++ b/rt/etc/upgrade/3.3.11/acl.Pg
@@ -0,0 +1,4 @@
+sub acl {
+ return ();
+}
+1;
diff --git a/rt/etc/upgrade/3.3.11/acl.SQLite b/rt/etc/upgrade/3.3.11/acl.SQLite
new file mode 100644
index 000000000..73c16ae03
--- /dev/null
+++ b/rt/etc/upgrade/3.3.11/acl.SQLite
@@ -0,0 +1,4 @@
+sub acl {
+ return ();
+}
+1;
diff --git a/rt/etc/upgrade/3.3.11/acl.mysql b/rt/etc/upgrade/3.3.11/acl.mysql
new file mode 100644
index 000000000..73c16ae03
--- /dev/null
+++ b/rt/etc/upgrade/3.3.11/acl.mysql
@@ -0,0 +1,4 @@
+sub acl {
+ return ();
+}
+1;
diff --git a/rt/etc/upgrade/3.3.11/content b/rt/etc/upgrade/3.3.11/content
new file mode 100644
index 000000000..0afc6045c
--- /dev/null
+++ b/rt/etc/upgrade/3.3.11/content
@@ -0,0 +1 @@
+1;
diff --git a/rt/etc/upgrade/3.3.11/schema.Oracle b/rt/etc/upgrade/3.3.11/schema.Oracle
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/rt/etc/upgrade/3.3.11/schema.Oracle
diff --git a/rt/etc/upgrade/3.3.11/schema.Pg b/rt/etc/upgrade/3.3.11/schema.Pg
new file mode 100644
index 000000000..6ab5d6581
--- /dev/null
+++ b/rt/etc/upgrade/3.3.11/schema.Pg
@@ -0,0 +1,11 @@
+ALTER TABLE ObjectCustomFieldValues ADD COLUMN SortOrder INTEGER;
+UPDATE ObjectCustomFieldValues SET SortOrder = 0;
+ALTER TABLE ObjectCustomFieldValues ALTER COLUMN SortOrder SET DEFAULT 0;
+ALTER TABLE ObjectCustomFieldValues ALTER COLUMN SortOrder SET NOT NULL;
+ALTER TABLE ObjectCustomFieldValues ADD COLUMN Disabled INTEGER;
+UPDATE ObjectCustomFieldValues SET Disabled = 1 WHERE Current = 0;
+UPDATE ObjectCustomFieldValues SET Disabled = 0 WHERE Current != 0;
+ALTER TABLE ObjectCustomFieldValues ALTER COLUMN Disabled SET DEFAULT 0;
+ALTER TABLE ObjectCustomFieldValues ALTER COLUMN Disabled SET NOT NULL;
+
+ALTER TABLE ObjectCustomFieldValues DROP COLUMN Current;
diff --git a/rt/etc/upgrade/3.3.11/schema.SQLite b/rt/etc/upgrade/3.3.11/schema.SQLite
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/rt/etc/upgrade/3.3.11/schema.SQLite
diff --git a/rt/etc/upgrade/3.3.11/schema.mysql b/rt/etc/upgrade/3.3.11/schema.mysql
new file mode 100644
index 000000000..cc35d40f2
--- /dev/null
+++ b/rt/etc/upgrade/3.3.11/schema.mysql
@@ -0,0 +1,5 @@
+ALTER TABLE ObjectCustomFieldValues ADD COLUMN SortOrder INTEGER NOT NULL DEFAULT 0;
+ALTER TABLE ObjectCustomFieldValues ADD COLUMN Disabled int2 NOT NULL DEFAULT 0;
+
+UPDATE ObjectCustomFieldValues SET Disabled = 1 WHERE Current = 0;
+ALTER TABLE ObjectCustomFieldValues DROP COLUMN Current;
diff --git a/rt/etc/upgrade/3.5.1/content b/rt/etc/upgrade/3.5.1/content
new file mode 100644
index 000000000..e3898a7cc
--- /dev/null
+++ b/rt/etc/upgrade/3.5.1/content
@@ -0,0 +1,36 @@
+@Attributes = (
+ { Name => 'Search - My Tickets',
+ Description => '[_1] highest priority tickets I own',
+ Content =>
+ { Format => "'<a href=\"__WebPath__/Ticket/Display.html?id=__id__\">__id__</a>/TITLE:#', '<a href=\"__WebPath__/Ticket/Display.html?id=__id__\">__Subject__</a>/TITLE:Subject', Priority, QueueName, ExtendedStatus",
+ Query => " Owner = '__CurrentUser__' AND ( Status = 'new' OR Status = 'open')",
+ OrderBy => 'Priority',
+ Order => 'DESC' },
+ },
+ { Name => 'Search - Unowned Tickets',
+ Description => '[_1] newest unowned tickets',
+ Content =>
+ { Format => "'<a href=\"__WebPath__/Ticket/Display.html?id=__id__\">__id__</a>/TITLE:#', '<a href=\"__WebPath__/Ticket/Display.html?id=__id__\">__Subject__</a>/TITLE:Subject', QueueName, ExtendedStatus, CreatedRelative, '<A HREF=\"__WebPath__/Ticket/Display.html?Action=Take&id=__id__\">__loc(Take)__</a>/TITLE:&nbsp;' ",
+ Query => " Owner = 'Nobody' AND ( Status = 'new' OR Status = 'open')",
+ OrderBy => 'Created',
+ Order => 'DESC' },
+ },
+ { Name => 'HomepageSettings',
+ Description => 'HomepageSettings',
+ Content =>
+ { 'body' =>
+ [ { type => 'system', name => 'My Tickets' },
+ { type => 'system', name => 'Unowned Tickets' },
+ { type => 'component', name => 'QuickCreate'},
+ ],
+ 'summary' =>
+ [
+ { type => 'component', name => 'MyReminders' },
+ { type => 'component', name => 'Quicksearch' },
+ { type => 'component', name => 'RefreshHomepage' },
+ ]
+ },
+}
+);
+
+1;