[Rt-commit] rt branch, 4.2/upgrade-existing-indexes, created. rt-4.2.10-191-g433f0a0
Alex Vandiver
alexmv at bestpractical.com
Tue Apr 7 15:36:13 EDT 2015
The branch, 4.2/upgrade-existing-indexes has been created
at 433f0a09a0f704b4ad0200643d0fe6f87a4681c2 (commit)
- Log -----------------------------------------------------------------
commit 433f0a09a0f704b4ad0200643d0fe6f87a4681c2
Author: Alex Vandiver <alexmv at bestpractical.com>
Date: Mon Mar 16 13:46:33 2015 -0400
Switch old upgrade steps to cope with indexes already existing
943d5e6e introduced the ability to manage indexes by function, instead
of by name. This allows upgrade steps to state the end state that they
require, instead of relying on specific index names -- which may
conflict with existing user-created indexes, or be unnecessary due to
equivalent user-created indexes.
Switch previous index-altering upgrade steps to use the new "indexes"
file functionality. This removes all instances of "CREATE INDEX" from
etc/upgrade/*/schema.*
diff --git a/etc/upgrade/3.3.0/indexes b/etc/upgrade/3.3.0/indexes
new file mode 100644
index 0000000..1aefdcc
--- /dev/null
+++ b/etc/upgrade/3.3.0/indexes
@@ -0,0 +1,25 @@
+use strict;
+use warnings;
+
+$RT::Handle->MakeSureIndexExists(
+ Table => 'Transactions',
+ Columns => ['ObjectType', 'ObjectId'],
+);
+
+if (RT->Config->Get('DatabaseType') eq 'mysql') {
+ $RT::Handle->MakeSureIndexExists(
+ Table => 'ObjectCustomFieldValues',
+ Columns => ['Content'],
+ );
+} else {
+ $RT::Handle->MakeSureIndexExists(
+ Table => 'ObjectCustomFieldValues',
+ Columns => ['CustomField','ObjectType','ObjectId','Content'],
+ );
+}
+
+$RT::Handle->MakeSureIndexExists(
+ Table => 'ObjectCustomFieldValues',
+ Columns => ['CustomField','ObjectType','ObjectId'],
+);
+
diff --git a/etc/upgrade/3.3.0/schema.Oracle b/etc/upgrade/3.3.0/schema.Oracle
index f81feeb..9d77a12 100644
--- a/etc/upgrade/3.3.0/schema.Oracle
+++ b/etc/upgrade/3.3.0/schema.Oracle
@@ -7,7 +7,6 @@ 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;
@@ -24,12 +23,6 @@ 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)
diff --git a/etc/upgrade/3.3.0/schema.Pg b/etc/upgrade/3.3.0/schema.Pg
index 427eae7..0c2ad54 100644
--- a/etc/upgrade/3.3.0/schema.Pg
+++ b/etc/upgrade/3.3.0/schema.Pg
@@ -9,8 +9,6 @@ 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;
@@ -33,10 +31,6 @@ 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;
diff --git a/etc/upgrade/3.3.0/schema.mysql b/etc/upgrade/3.3.0/schema.mysql
index d8b0499..539c50b 100644
--- a/etc/upgrade/3.3.0/schema.mysql
+++ b/etc/upgrade/3.3.0/schema.mysql
@@ -9,7 +9,6 @@ alter Table Transactions
CHANGE Ticket ObjectId integer NOT NULL DEFAULT 0;
UPDATE Transactions set ObjectType = 'RT::Ticket';
-CREATE INDEX Transactions1 ON Transactions (ObjectType, ObjectId);
alter table TicketCustomFieldValues rename ObjectCustomFieldValues,
change Ticket ObjectId integer NOT NULL DEFAULT 0 ,
@@ -25,10 +24,6 @@ update ObjectCustomFieldValues set ObjectType = 'RT::Ticket';
#alter table ObjectCustomFieldValues drop index ticketcustomfieldvalues1;
#alter table ObjectCustomFieldValues drop index ticketcustomfieldvalues2;
-alter table ObjectCustomFieldValues add index ObjectCustomFieldValues1 (Content),
- add index ObjectCustomFieldValues2 (CustomField,ObjectType,ObjectId);
-
-
CREATE TABLE ObjectCustomFields (
id INTEGER NOT NULL AUTO_INCREMENT,
CustomField int NOT NULL ,
diff --git a/etc/upgrade/3.7.81/indexes b/etc/upgrade/3.7.81/indexes
new file mode 100644
index 0000000..79b6716
--- /dev/null
+++ b/etc/upgrade/3.7.81/indexes
@@ -0,0 +1,7 @@
+use strict;
+use warnings;
+
+$RT::Handle->MakeSureIndexExists(
+ Table => 'CachedGroupMembers',
+ Columns => ['MemberId', 'ImmediateParentId'],
+);
diff --git a/etc/upgrade/3.7.81/schema.Oracle b/etc/upgrade/3.7.81/schema.Oracle
deleted file mode 100644
index 02da4ec..0000000
--- a/etc/upgrade/3.7.81/schema.Oracle
+++ /dev/null
@@ -1,2 +0,0 @@
-CREATE INDEX CachedGroupMembers3 on CachedGroupMembers (MemberId, ImmediateParentId);
-
diff --git a/etc/upgrade/3.7.81/schema.mysql b/etc/upgrade/3.7.81/schema.mysql
deleted file mode 100644
index 02da4ec..0000000
--- a/etc/upgrade/3.7.81/schema.mysql
+++ /dev/null
@@ -1,2 +0,0 @@
-CREATE INDEX CachedGroupMembers3 on CachedGroupMembers (MemberId, ImmediateParentId);
-
diff --git a/etc/upgrade/3.8.3/indexes b/etc/upgrade/3.8.3/indexes
new file mode 100644
index 0000000..311d1c6
--- /dev/null
+++ b/etc/upgrade/3.8.3/indexes
@@ -0,0 +1,8 @@
+use strict;
+use warnings;
+
+$RT::Handle->MakeSureIndexExists(
+ Table => 'GroupMembers',
+ Unique => 1,
+ Columns => ['GroupId', 'MemberId'],
+);
diff --git a/etc/upgrade/3.8.3/schema.Pg b/etc/upgrade/3.8.3/schema.Pg
deleted file mode 100644
index bbe5536..0000000
--- a/etc/upgrade/3.8.3/schema.Pg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-CREATE UNIQUE INDEX GroupMembers1 ON GroupMembers(GroupId, MemberId);
-
-----------------------------------------------------------------------
More information about the rt-commit
mailing list