MediaWiki  master
MysqlUpdater Class Reference
Inheritance diagram for MysqlUpdater:
Collaboration diagram for MysqlUpdater:

Public Member Functions

 getSchemaVars ()
 Get appropriate schema variables in the current database connection. More...
 
- Public Member Functions inherited from DatabaseUpdater
 addExtensionField ( $tableName, $columnName, $sqlPath)
 Add a field to an existing extension table. More...
 
 addExtensionIndex ( $tableName, $indexName, $sqlPath)
 Add an index to an existing extension table. More...
 
 addExtensionTable ( $tableName, $sqlPath)
 Convenience wrapper for addExtensionUpdate() when adding a new table (which is the most common usage of updaters in an extension) Intended for use in LoadExtensionSchemaUpdates hook handlers. More...
 
 addExtensionUpdate (array $update)
 Add a new update coming from an extension. More...
 
 addPostDatabaseUpdateMaintenance ( $class)
 Add a maintenance script to be run after the database updates are complete. More...
 
 doUpdates (array $what=[ 'core', 'extensions', 'stats'])
 Do all the updates. More...
 
 dropExtensionField ( $tableName, $columnName, $sqlPath)
 Drop a field from an extension table. More...
 
 dropExtensionIndex ( $tableName, $indexName, $sqlPath)
 Drop an index from an extension table Intended for use in LoadExtensionSchemaUpdates hook handlers. More...
 
 dropExtensionTable ( $tableName, $sqlPath=false)
 Drop an extension table. More...
 
 getDB ()
 Get a database connection to run updates. More...
 
 getPostDatabaseUpdateMaintenance ()
 
 insertUpdateRow ( $key, $val=null)
 Helper function: Add a key to the updatelog table. More...
 
 modifyExtensionField ( $tableName, $fieldName, $sqlPath)
 Modify an existing field in an extension table. More...
 
 modifyExtensionTable ( $tableName, $sqlPath)
 Modify an existing extension table. More...
 
 output ( $str)
 Output some text. More...
 
 patchPath (IDatabase $db, $patch)
 Get the full path of a patch file. More...
 
 purgeCache ()
 Purge various database caches. More...
 
 renameExtensionIndex ( $tableName, $oldIndexName, $newIndexName, $sqlPath, $skipBothIndexExistWarning=false)
 Rename an index on an extension table Intended for use in LoadExtensionSchemaUpdates hook handlers. More...
 
 setAutoExtensionHookContainer (HookContainer $hookContainer)
 Set the HookContainer to use for loading extension schema updates. More...
 
 setFileAccess ()
 Set any .htaccess files or equivilent for storage repos. More...
 
 tableExists ( $tableName)
 
 updateRowExists ( $key)
 Helper function: check if the given key is present in the updatelog table. More...
 

Protected Member Functions

 checkBin ( $table, $field, $patchFile)
 1.4 betas were missing the 'binary' marker from logging.log_title, which causes a collation mismatch error on joins in MySQL 4.1. More...
 
 doBacklinkingIndicesUpdate ()
 
 doCategorylinksIndicesUpdate ()
 
 doCategoryPopulation ()
 
 doClFieldsUpdate ()
 
 doExtendCommentLengths ()
 
 doFilearchiveIndicesUpdate ()
 
 doFixAncientImagelinks ()
 
 doFixIpbAddressUniqueIndex ()
 
 doIndexUpdate ()
 Check that proper indexes are in place. More...
 
 doInterwikiUpdate ()
 Check that interwiki table exists; if it doesn't source it. More...
 
 doIwlinksIndexNonUnique ()
 
 doLanguageLinksLengthSync ()
 
 doNamespaceSize ()
 
 doNonUniquePlTlIl ()
 
 doOldLinksUpdate ()
 
 doPagelinksUpdate ()
 
 doPageRandomUpdate ()
 Set page_random field to a random value where it is equals to 0. More...
 
 doPopulateParentId ()
 
 doRestrictionsUpdate ()
 Adding page_restrictions table, obsoleting page.page_restrictions. More...
 
 doRevisionPageRevIndexNonUnique ()
 
 doSchemaRestructuring ()
 
 doTemplatelinksUpdate ()
 
 doUnsignedSyncronisation ()
 
 doUpdateMimeMinorField ()
 
 doUserGroupsUpdate ()
 
 doUserNewTalkTimestampNotNull ()
 
 doUserUniqueUpdate ()
 
 doWatchlistNull ()
 Make sure wl_notificationtimestamp can be NULL, and update old broken items. More...
 
 doWatchlistUpdate ()
 Check if we need to add talk page rows to the watchlist. More...
 
 dropDefault ( $table, $field)
 Drop a default value from a field. More...
 
 getCoreUpdateList ()
 Get an array of updates to perform on the database. More...
 
 indexHasField ( $table, $index, $field)
 Check whether an index contain a field. More...
 
 setDefault ( $table, $field, $default)
 Set a default value for a field. More...
 
- Protected Member Functions inherited from DatabaseUpdater
 __construct (IMaintainableDatabase &$db, $shared, Maintenance $maintenance=null)
 Stable to call. More...
 
 addField ( $table, $field, $patch, $fullpath=false)
 Add a new field to an existing table. More...
 
 addIndex ( $table, $index, $patch, $fullpath=false)
 Add a new index to an existing table. More...
 
 addIndexIfNoneExist ( $table, $indexes, $patch, $fullpath=false)
 Add a new index to an existing table if none of the given indexes exist. More...
 
 addTable ( $name, $patch, $fullpath=false)
 Add a new table to the database. More...
 
 appendLine ( $line)
 Append a line to the open filehandle. More...
 
 applyPatch ( $path, $isFullPath=false, $msg=null)
 Applies a SQL patch. More...
 
 canUseNewUpdatelog ()
 Updatelog was changed in 1.17 to have a ul_value column so we can record more information about what kind of updates we've done (that's what this class does). More...
 
 checkStats ()
 Check the site_stats table is not properly populated. More...
 
 copyFile ( $filename)
 Append an SQL fragment to the open file handle. More...
 
 doActiveUsersInit ()
 Sets the number of active users in the site_stats table. More...
 
 doCollationUpdate ()
 Update CategoryLinks collation. More...
 
 doLogSearchPopulation ()
 Migrate log params to new table and index for searching. More...
 
 doLogUsertextPopulation ()
 Populates the log_user_text field in the logging table. More...
 
 doMigrateUserOptions ()
 Migrates user options from the user table blob to user_properties. More...
 
 doTable ( $name)
 Returns whether updates should be executed on the database table $name. More...
 
 dropField ( $table, $field, $patch, $fullpath=false)
 Drop a field from an existing table. More...
 
 dropIndex ( $table, $index, $patch, $fullpath=false)
 Drop an index from an existing table. More...
 
 dropTable ( $table, $patch=false, $fullpath=false)
 If the specified table exists, drop it, or execute the patch if one is provided. More...
 
 getExtensionUpdates ()
 Get the list of extension-defined updates. More...
 
 ifFieldExists ( $table, $field, $func,... $params)
 Only run a function if the named field exists. More...
 
 ifNoActorTable ( $func,... $params)
 
 ifTableNotExists ( $table, $func,... $params)
 Only run a function if a table does not exist. More...
 
 migrateActors ()
 Migrate actors to the new 'actor' table. More...
 
 migrateArchiveText ()
 Migrate ar_text to modern storage. More...
 
 migrateComments ()
 Migrate comments to the new 'comment' table. More...
 
 migrateImageCommentTemp ()
 Merge image_comment_temp into the image table. More...
 
 modifyField ( $table, $field, $patch, $fullpath=false)
 Modify an existing field. More...
 
 modifyTable ( $table, $patch, $fullpath=false)
 Modify an existing table, similar to modifyField. More...
 
 populateArchiveRevId ()
 Populate ar_rev_id, then make it not nullable. More...
 
 populateContentTables ()
 Populates the MCR content tables. More...
 
 populateExternallinksIndex60 ()
 Populates the externallinks.el_index_60 field. More...
 
 rebuildLocalisationCache ()
 Rebuilds the localisation cache. More...
 
 renameIndex ( $table, $oldIndex, $newIndex, $skipBothIndexExistWarning, $patch, $fullpath=false)
 Rename an index from an existing table Stable to override. More...
 
 renameIndexes ( $table, $patch, $count, $fullpath=false)
 Rename multiple indexes from an existing table. More...
 
 runMaintenance ( $class, $script)
 Run a maintenance script. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from DatabaseUpdater
static newForDB (IMaintainableDatabase $db, $shared=false, Maintenance $maintenance=null)
 
- Public Attributes inherited from DatabaseUpdater
const REPLICATION_WAIT_TIMEOUT = 300
 
- Protected Attributes inherited from DatabaseUpdater
HookContainer null $autoExtensionHookContainer
 
IMaintainableDatabase $db
 Handle to the database subclass. More...
 
array $extensionUpdates = []
 List of extension-provided database updates. More...
 
resource $fileHandle = null
 File handle for SQL output. More...
 
Maintenance $maintenance
 
string[] $postDatabaseUpdateMaintenance
 Scripts to run after database update Should be a subclass of LoggedUpdateMaintenance. More...
 
 $shared = false
 
bool $skipSchema = false
 Flag specifying whether or not to skip schema (e.g. More...
 
array $updates = []
 Array of updates to perform on the database. More...
 
array $updatesSkipped = []
 Array of updates that were skipped. More...
 

Detailed Description

Definition at line 34 of file MysqlUpdater.php.

Member Function Documentation

◆ checkBin()

MysqlUpdater::checkBin (   $table,
  $field,
  $patchFile 
)
protected

1.4 betas were missing the 'binary' marker from logging.log_title, which causes a collation mismatch error on joins in MySQL 4.1.

Parameters
string$tableTable name
string$fieldField name to check
string$patchFilePath to the patch to correct the field
Returns
bool

Definition at line 503 of file MysqlUpdater.php.

References DatabaseUpdater\applyPatch(), DatabaseUpdater\doTable(), and DatabaseUpdater\output().

◆ doBacklinkingIndicesUpdate()

MysqlUpdater::doBacklinkingIndicesUpdate ( )
protected

Definition at line 1100 of file MysqlUpdater.php.

References DatabaseUpdater\applyPatch(), and indexHasField().

◆ doCategorylinksIndicesUpdate()

MysqlUpdater::doCategorylinksIndicesUpdate ( )
protected

Definition at line 1138 of file MysqlUpdater.php.

References DatabaseUpdater\applyPatch(), and indexHasField().

◆ doCategoryPopulation()

MysqlUpdater::doCategoryPopulation ( )
protected

◆ doClFieldsUpdate()

MysqlUpdater::doClFieldsUpdate ( )
protected

◆ doExtendCommentLengths()

MysqlUpdater::doExtendCommentLengths ( )
protected

Definition at line 1373 of file MysqlUpdater.php.

References $res, DatabaseUpdater\applyPatch(), and DatabaseUpdater\output().

◆ doFilearchiveIndicesUpdate()

MysqlUpdater::doFilearchiveIndicesUpdate ( )
protected

Definition at line 1174 of file MysqlUpdater.php.

References DatabaseUpdater\applyPatch().

◆ doFixAncientImagelinks()

MysqlUpdater::doFixAncientImagelinks ( )
protected

Definition at line 586 of file MysqlUpdater.php.

References DatabaseUpdater\applyPatch(), and DatabaseUpdater\output().

◆ doFixIpbAddressUniqueIndex()

MysqlUpdater::doFixIpbAddressUniqueIndex ( )
protected

◆ doIndexUpdate()

MysqlUpdater::doIndexUpdate ( )
protected

Check that proper indexes are in place.

Definition at line 567 of file MysqlUpdater.php.

References DatabaseUpdater\applyPatch(), and DatabaseUpdater\output().

◆ doInterwikiUpdate()

MysqlUpdater::doInterwikiUpdate ( )
protected

Check that interwiki table exists; if it doesn't source it.

Definition at line 543 of file MysqlUpdater.php.

References $IP, DatabaseUpdater\applyPatch(), DatabaseUpdater\doTable(), and DatabaseUpdater\output().

◆ doIwlinksIndexNonUnique()

MysqlUpdater::doIwlinksIndexNonUnique ( )
protected

Definition at line 1296 of file MysqlUpdater.php.

References DatabaseUpdater\applyPatch(), and DatabaseUpdater\output().

◆ doLanguageLinksLengthSync()

MysqlUpdater::doLanguageLinksLengthSync ( )
protected

Definition at line 1232 of file MysqlUpdater.php.

References $res, $s, DatabaseUpdater\applyPatch(), and DatabaseUpdater\output().

◆ doNamespaceSize()

MysqlUpdater::doNamespaceSize ( )
protected

Definition at line 862 of file MysqlUpdater.php.

References DatabaseUpdater\output().

◆ doNonUniquePlTlIl()

MysqlUpdater::doNonUniquePlTlIl ( )
protected

Definition at line 1183 of file MysqlUpdater.php.

References DatabaseUpdater\applyPatch(), and DatabaseUpdater\output().

◆ doOldLinksUpdate()

MysqlUpdater::doOldLinksUpdate ( )
protected

Definition at line 581 of file MysqlUpdater.php.

◆ doPagelinksUpdate()

MysqlUpdater::doPagelinksUpdate ( )
protected

Definition at line 888 of file MysqlUpdater.php.

References DatabaseUpdater\applyPatch(), and DatabaseUpdater\output().

◆ doPageRandomUpdate()

MysqlUpdater::doPageRandomUpdate ( )
protected

Set page_random field to a random value where it is equals to 0.

See also
T5946

Definition at line 1038 of file MysqlUpdater.php.

References DatabaseUpdater\output().

◆ doPopulateParentId()

MysqlUpdater::doPopulateParentId ( )
protected

◆ doRestrictionsUpdate()

MysqlUpdater::doRestrictionsUpdate ( )
protected

Adding page_restrictions table, obsoleting page.page_restrictions.

Migrating old restrictions to new table – Andrew Garrett, January 2007.

Definition at line 1114 of file MysqlUpdater.php.

References DatabaseUpdater\applyPatch(), and DatabaseUpdater\output().

◆ doRevisionPageRevIndexNonUnique()

MysqlUpdater::doRevisionPageRevIndexNonUnique ( )
protected

◆ doSchemaRestructuring()

MysqlUpdater::doSchemaRestructuring ( )
protected

◆ doTemplatelinksUpdate()

MysqlUpdater::doTemplatelinksUpdate ( )
protected

◆ doUnsignedSyncronisation()

MysqlUpdater::doUnsignedSyncronisation ( )
protected

◆ doUpdateMimeMinorField()

MysqlUpdater::doUpdateMimeMinorField ( )
protected

◆ doUserGroupsUpdate()

MysqlUpdater::doUserGroupsUpdate ( )
protected

◆ doUserNewTalkTimestampNotNull()

MysqlUpdater::doUserNewTalkTimestampNotNull ( )
protected

◆ doUserUniqueUpdate()

MysqlUpdater::doUserUniqueUpdate ( )
protected

◆ doWatchlistNull()

MysqlUpdater::doWatchlistNull ( )
protected

Make sure wl_notificationtimestamp can be NULL, and update old broken items.

Definition at line 1015 of file MysqlUpdater.php.

References DatabaseUpdater\applyPatch(), and DatabaseUpdater\output().

◆ doWatchlistUpdate()

MysqlUpdater::doWatchlistUpdate ( )
protected

Check if we need to add talk page rows to the watchlist.

Definition at line 608 of file MysqlUpdater.php.

References $res, $wgUpdateRowsPerQuery, and DatabaseUpdater\output().

◆ dropDefault()

MysqlUpdater::dropDefault (   $table,
  $field 
)
protected

Drop a default value from a field.

Since
1.36
Parameters
string$table
string$field

Definition at line 1410 of file MysqlUpdater.php.

References DatabaseUpdater\output().

◆ getCoreUpdateList()

MysqlUpdater::getCoreUpdateList ( )
protected

Get an array of updates to perform on the database.

Should return a multi-dimensional array. The main key is the MediaWiki version (1.12, 1.13...) with the values being arrays of updates.

Returns
array[]

Reimplemented from DatabaseUpdater.

Definition at line 35 of file MysqlUpdater.php.

◆ getSchemaVars()

MysqlUpdater::getSchemaVars ( )

Get appropriate schema variables in the current database connection.

This should be called after any request data has been imported, but before any write operations to the database. The result should be passed to the DB setSchemaVars() method. Stable to override

Returns
array
Since
1.28

Reimplemented from DatabaseUpdater.

Definition at line 1389 of file MysqlUpdater.php.

References $wgDBTableOptions.

◆ indexHasField()

MysqlUpdater::indexHasField (   $table,
  $index,
  $field 
)
protected

Check whether an index contain a field.

Parameters
string$tableTable name
string$indexIndex name to check
string$fieldField that should be in the index
Returns
bool

Definition at line 525 of file MysqlUpdater.php.

References DatabaseUpdater\output().

Referenced by doBacklinkingIndicesUpdate(), doCategorylinksIndicesUpdate(), and doFixIpbAddressUniqueIndex().

◆ setDefault()

MysqlUpdater::setDefault (   $table,
  $field,
  $default 
)
protected

Set a default value for a field.

Since
1.36
Parameters
string$table
string$field
mixed$default

Definition at line 1427 of file MysqlUpdater.php.

References DatabaseUpdater\output().


The documentation for this class was generated from the following file: