From 2329616868f8a9de57a3c9b8b0bf0a3ecc4ae769 Mon Sep 17 00:00:00 2001 From: Jure Kajzer Date: Thu, 1 Sep 2011 13:55:14 +0000 Subject: [PATCH] * updated oracle schema to current * updater tested, installer untested(but should work :) ) --- includes/installer/OracleUpdater.php | 10 ++- .../oracle/archives/patch-globalinterwiki.sql | 8 +++ .../archives/patch-globalnamespaces.sql | 9 +++ .../archives/patch-globaltemplatelinks.sql | 15 +++++ .../patch-logging_type_action_index.sql | 4 ++ .../oracle/archives/patch-uploadstash.sql | 25 ++++++++ .../archives/patch-user_email_index.sql | 2 +- .../archives/patch-user_former_groups.sql | 9 +++ maintenance/oracle/tables.sql | 61 +++++++++++++++++++ 9 files changed, 140 insertions(+), 3 deletions(-) create mode 100644 maintenance/oracle/archives/patch-globalinterwiki.sql create mode 100644 maintenance/oracle/archives/patch-globalnamespaces.sql create mode 100644 maintenance/oracle/archives/patch-globaltemplatelinks.sql create mode 100644 maintenance/oracle/archives/patch-logging_type_action_index.sql create mode 100644 maintenance/oracle/archives/patch-uploadstash.sql create mode 100644 maintenance/oracle/archives/patch-user_former_groups.sql diff --git a/includes/installer/OracleUpdater.php b/includes/installer/OracleUpdater.php index a937d1c111..18ef7a4716 100644 --- a/includes/installer/OracleUpdater.php +++ b/includes/installer/OracleUpdater.php @@ -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 index 0000000000..9a6f6340e0 --- /dev/null +++ b/maintenance/oracle/archives/patch-globalinterwiki.sql @@ -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 index 0000000000..af2512eddc --- /dev/null +++ b/maintenance/oracle/archives/patch-globalnamespaces.sql @@ -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 index 0000000000..4d9328adbf --- /dev/null +++ b/maintenance/oracle/archives/patch-globaltemplatelinks.sql @@ -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 index 0000000000..d30e0cfc03 --- /dev/null +++ b/maintenance/oracle/archives/patch-logging_type_action_index.sql @@ -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 index 0000000000..3e37ceffe6 --- /dev/null +++ b/maintenance/oracle/archives/patch-uploadstash.sql @@ -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); diff --git a/maintenance/oracle/archives/patch-user_email_index.sql b/maintenance/oracle/archives/patch-user_email_index.sql index 975943c1e2..e34d86560c 100644 --- a/maintenance/oracle/archives/patch-user_email_index.sql +++ b/maintenance/oracle/archives/patch-user_email_index.sql @@ -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 index 0000000000..59147eb2f4 --- /dev/null +++ b/maintenance/oracle/archives/patch-user_former_groups.sql @@ -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); + diff --git a/maintenance/oracle/tables.sql b/maintenance/oracle/tables.sql index 2fd62ef7e6..f50aae06fb 100644 --- a/maintenance/oracle/tables.sql +++ b/maintenance/oracle/tables.sql @@ -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 ( -- 2.20.1