installer/updater
authorDaniel Kinzler <daniel.kinzler@wikimedia.de>
Tue, 6 Mar 2012 17:35:24 +0000 (17:35 +0000)
committerDaniel Kinzler <daniel.kinzler@wikimedia.de>
Wed, 4 Apr 2012 17:54:32 +0000 (19:54 +0200)
includes/installer/Ibm_db2Updater.php
includes/installer/MysqlUpdater.php
includes/installer/OracleUpdater.php
includes/installer/SqliteUpdater.php
maintenance/archives/patch-archive-ar_content_format.sql [new file with mode: 0644]
maintenance/archives/patch-archive-ar_content_model.sql [new file with mode: 0644]
maintenance/archives/patch-page-page_content_model.sql [new file with mode: 0644]
maintenance/archives/patch-revision-rev_content_format.sql [new file with mode: 0644]
maintenance/archives/patch-revision-rev_content_model.sql [new file with mode: 0644]
maintenance/tables.sql

index 8920893..b29b12f 100644 (file)
@@ -69,7 +69,15 @@ class Ibm_db2Updater extends DatabaseUpdater {
                        array( 'addIndex', 'logging',       'type_action',      'patch-logging-type-action-index.sql'),
                        array( 'dropField', 'user',         'user_options', 'patch-drop-user_options.sql' ),
                        array( 'addField', 'revision',      'rev_sha1',         'patch-rev_sha1.sql' ),
-                       array( 'addField', 'archive',       'ar_sha1',          'patch-ar_sha1.sql' )
+                       array( 'addField', 'archive',       'ar_sha1',          'patch-ar_sha1.sql' ),
+
+            // 1.20
+            // content model stuff for WikiData
+            array( 'addField', 'revision',     'rev_content_format',           'patch-revision-rev_content_format.sql' ),
+            array( 'addField', 'revision',     'rev_content_model',            'patch-revision-rev_content_model.sql' ),
+            array( 'addField', 'archive',      'ar_content_format',            'patch-archive-ar_content_format.sql' ),
+            array( 'addField', 'archive',      'ar_content_model',                 'patch-archive-ar_content_model.sql' ),
+            array( 'addField', 'page',     'page_content_model',               'patch-page-page_content_model.sql' ),
                );
        }
 }
index a5ffea4..60fdaaf 100644 (file)
@@ -192,6 +192,14 @@ class MysqlUpdater extends DatabaseUpdater {
                        array( 'modifyField', 'user', 'ug_group', 'patch-ug_group-length-increase.sql' ),
                        array( 'addField',      'uploadstash',  'us_chunk_inx',         'patch-uploadstash_chunk.sql' ),
                        array( 'addfield', 'job',           'job_timestamp',    'patch-jobs-add-timestamp.sql' ),
+
+            // 1.20
+            // content model stuff for WikiData
+            array( 'addField', 'revision',     'rev_content_format',           'patch-revision-rev_content_format.sql' ),
+            array( 'addField', 'revision',     'rev_content_model',            'patch-revision-rev_content_model.sql' ),
+            array( 'addField', 'archive',      'ar_content_format',            'patch-archive-ar_content_format.sql' ),
+            array( 'addField', 'archive',      'ar_content_model',                 'patch-archive-ar_content_model.sql' ),
+            array( 'addField', 'page',     'page_content_model',               'patch-page-page_content_model.sql' ),
                );
        }
 
index 366cd44..37116d5 100644 (file)
@@ -53,6 +53,14 @@ class OracleUpdater extends DatabaseUpdater {
                        array( 'addField', 'job', 'job_timestamp', 'patch-job_timestamp_field.sql' ),
                        array( 'addIndex', 'job', 'i02', 'patch-job_timestamp_index.sql' ),
 
+            // 1.20
+            // content model stuff for WikiData
+            array( 'addField', 'revision',     'rev_content_format',           'patch-revision-rev_content_format.sql' ),
+            array( 'addField', 'revision',     'rev_content_model',            'patch-revision-rev_content_model.sql' ),
+            array( 'addField', 'archive',      'ar_content_format',            'patch-archive-ar_content_format.sql' ),
+            array( 'addField', 'archive',      'ar_content_model',                 'patch-archive-ar_content_model.sql' ),
+            array( 'addField', 'page',     'page_content_model',               'patch-page-page_content_model.sql' ),
+
                        // KEEP THIS AT THE BOTTOM!!
                        array( 'doRebuildDuplicateFunction' ),
 
index fdb6437..19aac94 100644 (file)
@@ -71,6 +71,14 @@ class SqliteUpdater extends DatabaseUpdater {
                        array( 'modifyField', 'user', 'ug_group', 'patch-ug_group-length-increase.sql' ),
                        array( 'addField',      'uploadstash',  'us_chunk_inx',         'patch-uploadstash_chunk.sql' ),
                        array( 'addfield', 'job',           'job_timestamp',    'patch-jobs-add-timestamp.sql' ),
+
+            // 1.20
+            // content model stuff for WikiData
+            array( 'addField', 'revision',     'rev_content_format',           'patch-revision-rev_content_format.sql' ),
+            array( 'addField', 'revision',     'rev_content_model',            'patch-revision-rev_content_model.sql' ),
+            array( 'addField', 'archive',      'ar_content_format',            'patch-archive-ar_content_format.sql' ),
+            array( 'addField', 'archive',      'ar_content_model',                 'patch-archive-ar_content_model.sql' ),
+            array( 'addField', 'page',     'page_content_model',               'patch-page-page_content_model.sql' ),
                );
        }
 
diff --git a/maintenance/archives/patch-archive-ar_content_format.sql b/maintenance/archives/patch-archive-ar_content_format.sql
new file mode 100644 (file)
index 0000000..81f9fca
--- /dev/null
@@ -0,0 +1,2 @@
+ALTER TABLE /*$wgDBprefix*/archive
+  ADD ar_content_format varbinary(64) DEFAULT NULL;
diff --git a/maintenance/archives/patch-archive-ar_content_model.sql b/maintenance/archives/patch-archive-ar_content_model.sql
new file mode 100644 (file)
index 0000000..1a8b630
--- /dev/null
@@ -0,0 +1,2 @@
+ALTER TABLE /*$wgDBprefix*/archive
+  ADD ar_content_model varbinary(32) DEFAULT NULL;
diff --git a/maintenance/archives/patch-page-page_content_model.sql b/maintenance/archives/patch-page-page_content_model.sql
new file mode 100644 (file)
index 0000000..30434d9
--- /dev/null
@@ -0,0 +1,2 @@
+ALTER TABLE /*$wgDBprefix*/page
+  ADD page_content_model varbinary(32) DEFAULT NULL;
diff --git a/maintenance/archives/patch-revision-rev_content_format.sql b/maintenance/archives/patch-revision-rev_content_format.sql
new file mode 100644 (file)
index 0000000..22aeb8a
--- /dev/null
@@ -0,0 +1,2 @@
+ALTER TABLE /*$wgDBprefix*/revision
+  ADD rev_content_format varbinary(64) DEFAULT NULL;
diff --git a/maintenance/archives/patch-revision-rev_content_model.sql b/maintenance/archives/patch-revision-rev_content_model.sql
new file mode 100644 (file)
index 0000000..1ba0572
--- /dev/null
@@ -0,0 +1,2 @@
+ALTER TABLE /*$wgDBprefix*/revision
+  ADD rev_content_model varbinary(32) DEFAULT NULL;
index f43e613..e2e59ca 100644 (file)
@@ -259,7 +259,10 @@ CREATE TABLE /*_*/page (
   page_latest int unsigned NOT NULL,
 
   -- Uncompressed length in bytes of the page's current source text.
-  page_len int unsigned NOT NULL
+  page_len int unsigned NOT NULL,
+
+  -- content model
+  page_content_model  varbinary(32) default NULL
 ) /*$wgDBTableOptions*/;
 
 CREATE UNIQUE INDEX /*i*/name_title ON /*_*/page (page_namespace,page_title);
@@ -315,7 +318,13 @@ CREATE TABLE /*_*/revision (
   rev_parent_id int unsigned default NULL,
 
   -- SHA-1 text content hash in base-36
-  rev_sha1 varbinary(32) NOT NULL default ''
+  rev_sha1 varbinary(32) NOT NULL default '',
+
+  -- content model
+  rev_content_model  varbinary(32) default NULL,
+
+  -- content format (mime type)
+  rev_content_format varbinary(64) default NULL
 
 ) /*$wgDBTableOptions*/ MAX_ROWS=10000000 AVG_ROW_LENGTH=1024;
 -- In case tables are created as MyISAM, use row hints for MySQL <5.0 to avoid 4GB limit
@@ -425,7 +434,14 @@ CREATE TABLE /*_*/archive (
   ar_parent_id int unsigned default NULL,
 
   -- SHA-1 text content hash in base-36
-  ar_sha1 varbinary(32) NOT NULL default ''
+  ar_sha1 varbinary(32) NOT NULL default '',
+
+  -- content model
+  ar_content_model  varbinary(32) default NULL,
+
+  -- content format (mime type)
+  ar_content_format varbinary(64) default NULL
+
 ) /*$wgDBTableOptions*/;
 
 CREATE INDEX /*i*/name_title_timestamp ON /*_*/archive (ar_namespace,ar_title,ar_timestamp);