Go to the documentation of this file.
41 array(
'disableContentHandlerUseDB' ),
44 array(
'doNamespaceDefaults' ),
45 array(
'doFKRenameDeferr' ),
46 array(
'doFunctions17' ),
47 array(
'doSchemaUpgrade17' ),
48 array(
'doInsertPage0' ),
49 array(
'doRemoveNotNullEmptyDefaults' ),
50 array(
'addTable',
'user_former_groups',
'patch-user_former_groups.sql' ),
53 array(
'addIndex',
'user',
'i02',
'patch-user_email_index.sql' ),
54 array(
'modifyField',
'user_properties',
'up_property',
'patch-up_property.sql' ),
55 array(
'addTable',
'uploadstash',
'patch-uploadstash.sql' ),
56 array(
'doRecentchangesFK2Cascade' ),
59 array(
'addIndex',
'logging',
'i05',
'patch-logging_type_action_index.sql' ),
60 array(
'addField',
'revision',
'rev_sha1',
'patch-rev_sha1_field.sql' ),
61 array(
'addField',
'archive',
'ar_sha1',
'patch-ar_sha1_field.sql' ),
62 array(
'doRemoveNotNullEmptyDefaults2' ),
63 array(
'addIndex',
'page',
'i03',
'patch-page_redirect_namespace_len.sql' ),
64 array(
'addField',
'uploadstash',
'us_chunk_inx',
'patch-us_chunk_inx_field.sql' ),
65 array(
'addField',
'job',
'job_timestamp',
'patch-job_timestamp_field.sql' ),
66 array(
'addIndex',
'job',
'i02',
'patch-job_timestamp_index.sql' ),
67 array(
'doPageRestrictionsPKUKFix' ),
70 array(
'addIndex',
'ipblocks',
'i05',
'patch-ipblocks_i05_index.sql' ),
71 array(
'addIndex',
'revision',
'i05',
'patch-revision_i05_index.sql' ),
72 array(
'dropField',
'category',
'cat_hidden',
'patch-cat_hidden.sql' ),
75 array(
'addField',
'revision',
'rev_content_format',
76 'patch-revision-rev_content_format.sql' ),
77 array(
'addField',
'revision',
'rev_content_model',
78 'patch-revision-rev_content_model.sql' ),
79 array(
'addField',
'archive',
'ar_content_format',
'patch-archive-ar_content_format.sql' ),
80 array(
'addField',
'archive',
'ar_content_model',
'patch-archive-ar_content_model.sql' ),
81 array(
'addField',
'archive',
'ar_id',
'patch-archive-ar_id.sql' ),
82 array(
'addField',
'externallinks',
'el_id',
'patch-externallinks-el_id.sql' ),
83 array(
'addField',
'page',
'page_content_model',
'patch-page-page_content_model.sql' ),
84 array(
'enableContentHandlerUseDB' ),
85 array(
'dropField',
'site_stats',
'ss_admins',
'patch-ss_admins.sql' ),
86 array(
'dropField',
'recentchanges',
'rc_moved_to_title',
'patch-rc_moved.sql' ),
87 array(
'addTable',
'sites',
'patch-sites.sql' ),
88 array(
'addField',
'filearchive',
'fa_sha1',
'patch-fa_sha1.sql' ),
89 array(
'addField',
'job',
'job_token',
'patch-job_token.sql' ),
90 array(
'addField',
'job',
'job_attempts',
'patch-job_attempts.sql' ),
91 array(
'addField',
'uploadstash',
'us_props',
'patch-uploadstash-us_props.sql' ),
92 array(
'modifyField',
'user_groups',
'ug_group',
'patch-ug_group-length-increase-255.sql' ),
93 array(
'modifyField',
'user_former_groups',
'ufg_group',
94 'patch-ufg_group-length-increase-255.sql' ),
97 array(
'addIndex',
'logging',
'i06',
'patch-logging_user_text_type_time_index.sql' ),
98 array(
'addIndex',
'logging',
'i07',
'patch-logging_user_text_time_index.sql' ),
99 array(
'addField',
'user',
'user_password_expires',
'patch-user_password_expire.sql' ),
100 array(
'addField',
'page',
'page_links_updated',
'patch-page_links_updated.sql' ),
101 array(
'addField',
'recentchanges',
'rc_source',
'patch-rc_source.sql' ),
104 array(
'doRebuildDuplicateFunction' ),
115 $meta = $this->db->fieldInfo(
'page',
'page_namespace' );
116 if ( $meta->defaultValue() != null ) {
121 'patch_namespace_defaults.sql',
123 'Altering namespace fields with default value'
131 $meta = $this->db->query(
'
133 FROM user_constraints
134 WHERE constraint_type = \'R\' AND deferrable = \'DEFERRABLE\''
136 $row = $meta->fetchRow();
137 if ( $row && $row[
'cnt'] > 0 ) {
141 $this->
applyPatch(
'patch_fk_rename_deferred.sql',
false,
"Altering foreign keys ... " );
148 $this->
applyPatch(
'patch_create_17_functions.sql',
false,
"Recreating functions" );
157 if ( $this->db->tableExists(
'iwlinks' ) ) {
160 $this->
applyPatch(
'patch_16_17_schema_changes.sql',
false,
"Updating schema to 17" );
167 $this->
output(
"Inserting page 0 if missing ... " );
170 'page_namespace' => 0,
173 'page_is_redirect' => 0,
176 'page_touched' => $this->db->timestamp(),
180 $this->db->insert(
'page', $row,
'OracleUpdater:doInserPage0',
array(
'IGNORE' ) );
189 $meta = $this->db->fieldInfo(
'categorylinks',
'cl_sortkey_prefix' );
190 if ( $meta->isNullable() ) {
194 'patch_remove_not_null_empty_defs.sql',
196 'Removing not null empty constraints'
201 $meta = $this->db->fieldInfo(
'ipblocks',
'ipb_by_text' );
202 if ( $meta->isNullable() ) {
206 'patch_remove_not_null_empty_defs2.sql',
208 'Removing not null empty constraints'
217 $meta = $this->db->query(
'SELECT 1 FROM all_constraints WHERE owner = \'' .
218 strtoupper( $this->db->getDBname() ) .
219 '\' AND constraint_name = \
'' .
220 $this->db->tablePrefix() .
221 'RECENTCHANGES_FK2\' AND delete_rule = \'CASCADE\''
223 $row = $meta->fetchRow();
228 $this->
applyPatch(
'patch_recentchanges_fk2_cascade.sql',
false,
"Altering RECENTCHANGES_FK2" );
235 $this->
output(
"Altering PAGE_RESTRICTIONS keys ... " );
237 $meta = $this->db->query(
'SELECT column_name FROM all_cons_columns WHERE owner = \'' .
238 strtoupper( $this->db->getDBname() ) .
239 '\' AND constraint_name = \
'' .
240 $this->db->tablePrefix() .
241 'PAGE_RESTRICTIONS_PK\' AND rownum = 1'
243 $row = $meta->fetchRow();
244 if ( $row[
'column_name'] ==
'PR_ID' ) {
245 $this->
output(
"seems to be up to date.\n" );
250 $this->
applyPatch(
'patch-page_restrictions_pkuk_fix.sql',
false );
258 $this->
applyPatch(
'patch_rebuild_dupfunc.sql',
false,
"Rebuilding duplicate function" );
266 public function doUpdates( $what =
array(
'core',
'extensions',
'purge',
'stats' ) ) {
267 parent::doUpdates( $what );
269 $this->db->query(
'BEGIN fill_wiki_info; END;' );
276 # We can't guarantee that the user will be able to use TRUNCATE,
277 # but we know that DELETE is available to us
278 $this->
output(
"Purging caches..." );
279 $this->db->delete(
'/*Q*/' . $this->db->tableName(
'objectcache' ),
'*', __METHOD__ );
280 $this->
output(
"done.\n" );
output( $str)
Output some text.
doFunctions17()
Recreate functions to 17 schema layout.
purgeCache()
Overload: because of the DDL_MODE tablename escaping is a bit dodgy.
applyPatch( $path, $isFullPath=false, $msg=null)
Applies a SQL patch.
skin txt MediaWiki includes four core it has been set as the default in MediaWiki since the replacing Monobook it had been been the default skin since before being replaced by Vector largely rewritten in while keeping its appearance Several legacy skins were removed in the as the burden of supporting them became too heavy to bear Those in etc for skin dependent CSS etc for skin dependent JavaScript These can also be customised on a per user by etc This feature has led to a wide variety of user styles becoming that gallery is a good place to ending in php
doFKRenameDeferr()
Uniform FK names + deferrable state.
Class for handling database updates.
doPageRestrictionsPKUKFix()
Fixed wrong PK, UK definition.
doRecentchangesFK2Cascade()
Removed forcing of invalid state on recentchanges_fk2.
Class for handling updates to Oracle databases.
the array() calling protocol came about after MediaWiki 1.4rc1.
List of Api Query prop modules.
doInsertPage0()
Insert page (page_id = 0) to prevent FK constraint violation.
doRemoveNotNullEmptyDefaults()
Remove DEFAULT '' NOT NULL constraints from fields as '' is internally converted to NULL in Oracle.
doSchemaUpgrade17()
Schema upgrade 16->17 there are no incremental patches prior to this.
doRemoveNotNullEmptyDefaults2()
DatabaseOracle $db
Handle to the database subclass.
doUpdates( $what=array( 'core', 'extensions', 'purge', 'stats'))
Overload: after this action field info table has to be rebuilt.
getCoreUpdateList()
Get an array of updates to perform on the database.
doNamespaceDefaults()
MySQL uses datatype defaults for NULL inserted into NOT NULL fields In namespace case that results in...
doRebuildDuplicateFunction()
rebuilding of the function that duplicates tables for tests