[Rt-commit] rt branch, 4.0/apply-scrips-to-multiple-queues, updated. rt-4.0.4-213-gec02d03
Thomas Sibley
trs at bestpractical.com
Wed Apr 11 17:44:36 EDT 2012
The branch, 4.0/apply-scrips-to-multiple-queues has been updated
via ec02d03b170c784dcc2b69e8df5da8018d7294c7 (commit)
from 786484506b3bd56cca4b3508962de3d518d1b220 (commit)
Summary of changes:
etc/upgrade/{4.0.1 => 4.1.0}/acl.Pg | 14 +++-----------
etc/upgrade/4.1.0/{schema.mysql => schema.Pg} | 19 +++++++++++--------
2 files changed, 14 insertions(+), 19 deletions(-)
copy etc/upgrade/{4.0.1 => 4.1.0}/acl.Pg (67%)
copy etc/upgrade/4.1.0/{schema.mysql => schema.Pg} (71%)
- Log -----------------------------------------------------------------
commit ec02d03b170c784dcc2b69e8df5da8018d7294c7
Author: Thomas Sibley <trs at bestpractical.com>
Date: Tue Apr 10 17:41:55 2012 -0400
Schema upgrades for Postgres
diff --git a/etc/upgrade/4.1.0/acl.Pg b/etc/upgrade/4.1.0/acl.Pg
new file mode 100755
index 0000000..9e8fc0a
--- /dev/null
+++ b/etc/upgrade/4.1.0/acl.Pg
@@ -0,0 +1,31 @@
+
+sub acl {
+ my $dbh = shift;
+
+ my @acls;
+
+ my @tables = qw (
+ objectscrips_id_seq
+ ObjectScrips
+ );
+
+ my $db_user = RT->Config->Get('DatabaseUser');
+
+ my $sequence_right
+ = ( $dbh->{pg_server_version} >= 80200 )
+ ? "USAGE, SELECT, UPDATE"
+ : "SELECT, UPDATE";
+
+ foreach my $table (@tables) {
+ # Tables are upper-case, sequences are lowercase in @tables
+ if ( $table =~ /^[a-z]/ ) {
+ push @acls, "GRANT $sequence_right ON $table TO \"$db_user\";"
+ }
+ else {
+ push @acls, "GRANT SELECT, INSERT, UPDATE, DELETE ON $table TO \"$db_user\";"
+ }
+ }
+ return (@acls);
+}
+
+1;
diff --git a/etc/upgrade/4.1.0/schema.Pg b/etc/upgrade/4.1.0/schema.Pg
new file mode 100644
index 0000000..5865866
--- /dev/null
+++ b/etc/upgrade/4.1.0/schema.Pg
@@ -0,0 +1,41 @@
+CREATE SEQUENCE objectscrips_id_seq;
+
+CREATE TABLE ObjectScrips (
+ id INTEGER DEFAULT nextval('objectscrips_id_seq'),
+ Scrip integer NOT NULL,
+ Stage varchar(32) NOT NULL DEFAULT 'TransactionCreate' ,
+ ObjectId integer NOT NULL,
+ SortOrder integer NOT NULL DEFAULT 0 ,
+ Disabled 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 ObjectScrips(
+ Scrip, Stage, ObjectId,
+ Creator, Created, LastUpdatedBy, LastUpdated
+)
+SELECT id, Stage, Queue, Creator, Created, LastUpdatedBy, LastUpdated
+FROM Scrips
+;
+
+UPDATE ObjectScrips SET Disabled = 1 WHERE Scrip IN (
+ SELECT id FROM Scrips WHERE Stage = 'Disabled'
+);
+UPDATE ObjectScrips SET Stage = 'TransactionCreate' WHERE Stage = 'Disabled';
+
+CREATE UNIQUE INDEX ObjectScrips1 ON ObjectScrips (ObjectId, Scrip);
+
+ALTER TABLE Scrips DROP COLUMN Stage;
+ALTER TABLE Scrips DROP COLUMN Queue;
+
+ALTER TABLE ObjectCustomFields ADD COLUMN Disabled integer NOT NULL DEFAULT 0;
+UPDATE ObjectCustomFields SET Disabled = 1 WHERE CustomField IN (
+ SELECT id FROM CustomFields WHERE Disabled != 0
+);
+ALTER TABLE CustomFields DROP COLUMN Disabled;
-----------------------------------------------------------------------
More information about the Rt-commit
mailing list