* updated oracle schema to current
authorJure Kajzer <freakolowsky@users.mediawiki.org>
Thu, 1 Sep 2011 13:55:14 +0000 (13:55 +0000)
committerJure Kajzer <freakolowsky@users.mediawiki.org>
Thu, 1 Sep 2011 13:55:14 +0000 (13:55 +0000)
* updater tested, installer untested(but should work :) )

includes/installer/OracleUpdater.php
maintenance/oracle/archives/patch-globalinterwiki.sql [new file with mode: 0644]
maintenance/oracle/archives/patch-globalnamespaces.sql [new file with mode: 0644]
maintenance/oracle/archives/patch-globaltemplatelinks.sql [new file with mode: 0644]
maintenance/oracle/archives/patch-logging_type_action_index.sql [new file with mode: 0644]
maintenance/oracle/archives/patch-uploadstash.sql [new file with mode: 0644]
maintenance/oracle/archives/patch-user_email_index.sql
maintenance/oracle/archives/patch-user_former_groups.sql [new file with mode: 0644]
maintenance/oracle/tables.sql

index a937d1c..18ef7a4 100644 (file)
@@ -30,14 +30,20 @@ class OracleUpdater extends DatabaseUpdater {
                        array( 'doSchemaUpgrade17' ),
                        array( 'doInsertPage0' ),
                        array( 'doRemoveNotNullEmptyDefaults' ),
+                       array( 'addTable', 'user_former_groups', 'patch-user_former_groups.sql' ),
 
                        //1.18
                        array( 'addIndex',      'user',          'i02',       'patch-user_email_index.sql' ),
                        array( 'modifyField', 'user_properties', 'up_property', 'patch-up_property.sql' ),
+                       array( 'addTable', 'uploadstash', 'patch-uploadstash.sql' ),
 
-                       // 1.19
+                       //1.19
                        array( 'addTable', 'config', 'patch-config.sql' ),
-
+                       array( 'addIndex', 'logging',       'i05',      'patch-logging_type_action_index.sql'),
+                       array( 'addTable', 'globaltemplatelinks', 'patch-globaltemplatelinks.sql' ),
+                       array( 'addTable', 'globalnamespaces', 'patch-globalnamespaces.sql' ),
+                       array( 'addTable', 'globalinterwiki', 'patch-globalinterwiki.sql' ),
+                       
                        // till 2.0 i guess
                        array( 'doRebuildDuplicateFunction' ),
 
diff --git a/maintenance/oracle/archives/patch-globalinterwiki.sql b/maintenance/oracle/archives/patch-globalinterwiki.sql
new file mode 100644 (file)
index 0000000..9a6f634
--- /dev/null
@@ -0,0 +1,8 @@
+define mw_prefix='{$wgDBprefix}';
+
+CREATE TABLE &mw_prefix.globalinterwiki (
+       giw_wikiid VARCHAR2(64) NOT NULL,
+       giw_prefix VARCHAR2(32) NOT NULL
+);
+CREATE UNIQUE INDEX &mw_prefix.globalinterwiki_u01 ON &mw_prefix.globalinterwiki (giw_wikiid, giw_prefix);
+
diff --git a/maintenance/oracle/archives/patch-globalnamespaces.sql b/maintenance/oracle/archives/patch-globalnamespaces.sql
new file mode 100644 (file)
index 0000000..af2512e
--- /dev/null
@@ -0,0 +1,9 @@
+define mw_prefix='{$wgDBprefix}';
+
+CREATE TABLE &mw_prefix.globalnamespaces (
+       gn_wiki                                         VARCHAR2(64) NOT NULL,
+       gn_namespace                    NUMBER NOT NULL,
+       gn_namespacetext        VARCHAR2(255) NOT NULL
+);
+CREATE UNIQUE INDEX &mw_prefix.globalnamespaces_u01 ON &mw_prefix.globalnamespaces (gn_wiki, gn_namespace, gn_namespacetext);
+
diff --git a/maintenance/oracle/archives/patch-globaltemplatelinks.sql b/maintenance/oracle/archives/patch-globaltemplatelinks.sql
new file mode 100644 (file)
index 0000000..4d9328a
--- /dev/null
@@ -0,0 +1,15 @@
+define mw_prefix='{$wgDBprefix}';
+
+CREATE TABLE &mw_prefix.globaltemplatelinks (
+       gtl_from_wiki                           VARCHAR2(64) NOT NULL,
+       gtl_from_page                                   NUMBER NOT NULL,
+       gtl_from_namespace              NUMBER NOT NULL,
+       gtl_from_title                          VARCHAR2(255) NOT NULL,
+       gtl_to_prefix                                   VARCHAR2(32) NOT NULL,
+       gtl_to_namespace                        NUMBER NOT NULL,
+       gtl_to_namespacetext    VARCHAR2(255) NOT NULL,
+       gtl_to_title                                    VARCHAR2(255) NOT NULL
+);
+CREATE UNIQUE INDEX &mw_prefix.globaltemplatelinks_u01 ON &mw_prefix.globaltemplatelinks (gtl_to_prefix, gtl_to_namespace, gtl_to_title, gtl_from_wiki, gtl_from_page);
+CREATE UNIQUE INDEX &mw_prefix.globaltemplatelinks_u02 ON &mw_prefix.globaltemplatelinks (gtl_from_wiki, gtl_from_page, gtl_to_prefix, gtl_to_namespace, gtl_to_title);
+
diff --git a/maintenance/oracle/archives/patch-logging_type_action_index.sql b/maintenance/oracle/archives/patch-logging_type_action_index.sql
new file mode 100644 (file)
index 0000000..d30e0cf
--- /dev/null
@@ -0,0 +1,4 @@
+define mw_prefix='{$wgDBprefix}';
+
+CREATE INDEX &mw_prefix.logging_i05 ON &mw_prefix.logging (log_type, log_action, log_timestamp);
+
diff --git a/maintenance/oracle/archives/patch-uploadstash.sql b/maintenance/oracle/archives/patch-uploadstash.sql
new file mode 100644 (file)
index 0000000..3e37cef
--- /dev/null
@@ -0,0 +1,25 @@
+define mw_prefix='{$wgDBprefix}';
+
+CREATE SEQUENCE uploadstash_us_id_seq;
+CREATE TABLE &mw_prefix.uploadstash (
+       us_id                 NUMBER       NOT NULL,
+  us_user               NUMBER          DEFAULT 0 NOT NULL,
+       us_key                                                          VARCHAR2(255) NOT NULL,
+       us_orig_path                                    VARCHAR2(255) NOT NULL,
+       us_path                                                         VARCHAR2(255) NOT NULL,
+       us_source_type                          VARCHAR2(50),
+  us_timestamp          TIMESTAMP(6) WITH TIME ZONE,
+       us_status                                                       VARCHAR2(50) NOT NULL,
+       us_size                                                         NUMBER NOT NULL,
+       us_sha1                                                         VARCHAR2(32) NOT NULL,
+       us_mime                                                         VARCHAR2(255),
+  us_media_type         VARCHAR2(32) DEFAULT NULL,
+       us_image_width                          NUMBER,
+       us_image_height                         NUMBER,
+       us_image_bits                                   NUMBER
+);
+ALTER TABLE &mw_prefix.uploadstash ADD CONSTRAINT &mw_prefix.uploadstash_pk PRIMARY KEY (us_id);
+ALTER TABLE &mw_prefix.uploadstash ADD CONSTRAINT &mw_prefix.uploadstash_fk1 FOREIGN KEY (us_user) REFERENCES &mw_prefix.mwuser(user_id) ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED;
+CREATE INDEX &mw_prefix.uploadstash_i01 ON &mw_prefix.uploadstash (us_user);
+CREATE INDEX &mw_prefix.uploadstash_i02 ON &mw_prefix.uploadstash (us_timestamp);
+CREATE UNIQUE INDEX &mw_prefix.uploadstash_u01 ON &mw_prefix.uploadstash (us_key);
index 975943c..e34d865 100644 (file)
@@ -1,4 +1,4 @@
 define mw_prefix='{$wgDBprefix}';
 
-CREATE INDEX &mw_prefix.mwuser_i02 ON &mw_prefix.mwuser (user_email, user_name);
+CREATE INDEX &mw_prefix.mwuser_i02 ON &mw_prefix.mwuser (user_email);
 
diff --git a/maintenance/oracle/archives/patch-user_former_groups.sql b/maintenance/oracle/archives/patch-user_former_groups.sql
new file mode 100644 (file)
index 0000000..59147eb
--- /dev/null
@@ -0,0 +1,9 @@
+define mw_prefix='{$wgDBprefix}';
+
+CREATE TABLE &mw_prefix.user_former_groups (
+  ufg_user   NUMBER      DEFAULT 0 NOT NULL,
+  ufg_group  VARCHAR2(16)     NOT NULL
+);
+ALTER TABLE &mw_prefix.user_former_groups ADD CONSTRAINT &mw_prefix.user_former_groups_fk1 FOREIGN KEY (ufg_user) REFERENCES &mw_prefix.mwuser(user_id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED;
+CREATE UNIQUE INDEX &mw_prefix.user_former_groups_u01 ON &mw_prefix.user_former_groups (ufg_user,ufg_group);
+
index 2fd62ef..f50aae0 100644 (file)
@@ -37,6 +37,17 @@ ALTER TABLE &mw_prefix.user_groups ADD CONSTRAINT &mw_prefix.user_groups_fk1 FOR
 CREATE UNIQUE INDEX &mw_prefix.user_groups_u01 ON &mw_prefix.user_groups (ug_user,ug_group);
 CREATE INDEX &mw_prefix.user_groups_i01 ON &mw_prefix.user_groups (ug_group);
 
+CREATE TABLE &mw_prefix.user_former_groups (
+  ufg_user   NUMBER      DEFAULT 0 NOT NULL,
+  ufg_group  VARCHAR2(16)     NOT NULL
+);
+ALTER TABLE &mw_prefix.user_former_groups ADD CONSTRAINT &mw_prefix.user_former_groups_fk1 FOREIGN KEY (ufg_user) REFERENCES &mw_prefix.mwuser(user_id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED;
+CREATE UNIQUE INDEX &mw_prefix.user_former_groups_u01 ON &mw_prefix.user_former_groups (ufg_user,ufg_group);
+
+
+CREATE UNIQUE INDEX /*i*/ufg_user_group ON /*_*/user_former_groups (ufg_user,ufg_group);
+
+
 CREATE TABLE &mw_prefix.user_newtalk (
   user_id  NUMBER DEFAULT 0 NOT NULL,
   user_ip  VARCHAR2(40)        NULL,
@@ -355,6 +366,30 @@ CREATE INDEX &mw_prefix.filearchive_i02 ON &mw_prefix.filearchive (fa_storage_gr
 CREATE INDEX &mw_prefix.filearchive_i03 ON &mw_prefix.filearchive (fa_deleted_timestamp);
 CREATE INDEX &mw_prefix.filearchive_i04 ON &mw_prefix.filearchive (fa_user_text,fa_timestamp);
 
+CREATE SEQUENCE uploadstash_us_id_seq;
+CREATE TABLE &mw_prefix.uploadstash (
+       us_id                 NUMBER       NOT NULL,
+  us_user               NUMBER          DEFAULT 0 NOT NULL,
+       us_key                                                          VARCHAR2(255) NOT NULL,
+       us_orig_path                                    VARCHAR2(255) NOT NULL,
+       us_path                                                         VARCHAR2(255) NOT NULL,
+       us_source_type                          VARCHAR2(50),
+  us_timestamp          TIMESTAMP(6) WITH TIME ZONE,
+       us_status                                                       VARCHAR2(50) NOT NULL,
+       us_size                                                         NUMBER NOT NULL,
+       us_sha1                                                         VARCHAR2(32) NOT NULL,
+       us_mime                                                         VARCHAR2(255),
+  us_media_type         VARCHAR2(32) DEFAULT NULL,
+       us_image_width                          NUMBER,
+       us_image_height                         NUMBER,
+       us_image_bits                                   NUMBER
+);
+ALTER TABLE &mw_prefix.uploadstash ADD CONSTRAINT &mw_prefix.uploadstash_pk PRIMARY KEY (us_id);
+ALTER TABLE &mw_prefix.uploadstash ADD CONSTRAINT &mw_prefix.uploadstash_fk1 FOREIGN KEY (us_user) REFERENCES &mw_prefix.mwuser(user_id) ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED;
+CREATE INDEX &mw_prefix.uploadstash_i01 ON &mw_prefix.uploadstash (us_user);
+CREATE INDEX &mw_prefix.uploadstash_i02 ON &mw_prefix.uploadstash (us_timestamp);
+CREATE UNIQUE INDEX &mw_prefix.uploadstash_u01 ON &mw_prefix.uploadstash (us_key);
+
 CREATE SEQUENCE recentchanges_rc_id_seq;
 CREATE TABLE &mw_prefix.recentchanges (
   rc_id              NUMBER      NOT NULL,
@@ -467,6 +502,7 @@ CREATE INDEX &mw_prefix.logging_i01 ON &mw_prefix.logging (log_type, log_timesta
 CREATE INDEX &mw_prefix.logging_i02 ON &mw_prefix.logging (log_user, log_timestamp);
 CREATE INDEX &mw_prefix.logging_i03 ON &mw_prefix.logging (log_namespace, log_title, log_timestamp);
 CREATE INDEX &mw_prefix.logging_i04 ON &mw_prefix.logging (log_timestamp);
+CREATE INDEX &mw_prefix.logging_i05 ON &mw_prefix.logging (log_type, log_action, log_timestamp);
 
 CREATE TABLE &mw_prefix.log_search (
   ls_field VARCHAR2(32) NOT NULL,
@@ -644,6 +680,31 @@ CREATE TABLE &mw_prefix.config (
 ALTER TABLE &mw_prefix.config ADD CONSTRAINT &mw_prefix.config_pk PRIMARY KEY (cf_name);
 -- leaving index out for now ... 
 
+CREATE TABLE &mw_prefix.globaltemplatelinks (
+       gtl_from_wiki                           VARCHAR2(64) NOT NULL,
+       gtl_from_page                                   NUMBER NOT NULL,
+       gtl_from_namespace              NUMBER NOT NULL,
+       gtl_from_title                          VARCHAR2(255) NOT NULL,
+       gtl_to_prefix                                   VARCHAR2(32) NOT NULL,
+       gtl_to_namespace                        NUMBER NOT NULL,
+       gtl_to_namespacetext    VARCHAR2(255) NOT NULL,
+       gtl_to_title                                    VARCHAR2(255) NOT NULL
+);
+CREATE UNIQUE INDEX &mw_prefix.globaltemplatelinks_u01 ON &mw_prefix.globaltemplatelinks (gtl_to_prefix, gtl_to_namespace, gtl_to_title, gtl_from_wiki, gtl_from_page);
+CREATE UNIQUE INDEX &mw_prefix.globaltemplatelinks_u02 ON &mw_prefix.globaltemplatelinks (gtl_from_wiki, gtl_from_page, gtl_to_prefix, gtl_to_namespace, gtl_to_title);
+
+CREATE TABLE &mw_prefix.globalnamespaces (
+       gn_wiki                                         VARCHAR2(64) NOT NULL,
+       gn_namespace                    NUMBER NOT NULL,
+       gn_namespacetext        VARCHAR2(255) NOT NULL
+);
+CREATE UNIQUE INDEX &mw_prefix.globalnamespaces_u01 ON &mw_prefix.globalnamespaces (gn_wiki, gn_namespace, gn_namespacetext);
+
+CREATE TABLE &mw_prefix.globalinterwiki (
+       giw_wikiid VARCHAR2(64) NOT NULL,
+       giw_prefix VARCHAR2(32) NOT NULL
+);
+CREATE UNIQUE INDEX &mw_prefix.globalinterwiki_u01 ON &mw_prefix.globalinterwiki (giw_wikiid, giw_prefix);
 
 -- do not prefix this table as it breaks parserTests
 CREATE TABLE wiki_field_info_full (