[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