MediaWiki master
MediaWiki\Installer\PostgresUpdater Class Reference

Class for handling updates to Postgres databases. More...

Inherits MediaWiki\Installer\DatabaseUpdater.

Collaboration diagram for MediaWiki\Installer\PostgresUpdater:

Protected Member Functions

 addPgExtIndex ( $table, $index, $type)
 
 addPgField ( $table, $field, $type)
 
 addPgIndex ( $table, $index, $type, $unique=false)
 
 addSequence ( $table, $pkey, $ns)
 
 changeField ( $table, $field, $newtype, $default)
 
 changeFieldPurgeTable ( $table, $field, $newtype, $default)
 
 changeFkeyDeferrable ( $table, $field, $clause)
 
 changeNullableField ( $table, $field, $null, $update=false)
 
 changePrimaryKey ( $table, $shouldBe, $constraintName=null)
 
 checkIndex ( $index, $should_be, $good_def)
 
 describeIndex ( $idx)
 
 describeTable ( $table)
 
 dropConstraint ( $table, $field, $type, $conname=null)
 Drop generic constraint.
 
 dropDefault ( $table, $field)
 Drop a default value from a field.
 
 dropFkey ( $table, $field)
 
 dropPgField ( $table, $field)
 
 dropPgIndex ( $table, $index)
 
 dropSequence ( $table, $ns)
 
 fkeyDeltype ( $fkey)
 
 getCoreUpdateList ()
 
 getInitialUpdateKeys ()
 Get an array of update keys to insert into the updatelog table after a new installation.
 
 renameIndex ( $table, $old, $new, $skipBothIndexExistWarning=false, $a=false, $b=false)
 Rename an index from an existing table.
 
 renameSequence ( $old, $new)
 
 renameTable ( $old, $new, $patch=false)
 
 ruleDef ( $table, $rule)
 
 setDefault ( $table, $field, $default)
 
 setSequenceOwner ( $table, $pkey, $seq)
 
- Protected Member Functions inherited from MediaWiki\Installer\DatabaseUpdater
 __construct (IMaintainableDatabase &$db, $shared, Maintenance $maintenance=null)
 
 addField ( $table, $field, $patch, $fullpath=false)
 Add a new field to an existing table.
 
 addIndex ( $table, $index, $patch, $fullpath=false)
 Add a new index to an existing table.
 
 addTable ( $name, $patch, $fullpath=false)
 Add a new table to the database.
 
 appendLine ( $line)
 Append a line to the open file handle.
 
 applyPatch ( $path, $isFullPath=false, $msg=null)
 Applies a SQL patch.
 
 checkStats ()
 Check the site_stats table is not properly populated.
 
 copyFile ( $filename)
 Append an SQL fragment to the open file handle.
 
 doCollationUpdate ()
 Update CategoryLinks collation.
 
 doConvertDjvuMetadata ()
 
 doTable ( $name)
 Returns whether updates should be executed on the database table $name.
 
 dropField ( $table, $field, $patch, $fullpath=false)
 Drop a field from an existing table.
 
 dropIndex ( $table, $index, $patch, $fullpath=false)
 Drop an index from an existing table.
 
 dropTable ( $table, $patch=false, $fullpath=false)
 If the specified table exists, drop it, or execute the patch if one is provided.
 
 getExtensionUpdates ()
 Get the list of extension-defined updates.
 
 ifFieldExists ( $table, $field, $func,... $params)
 Only run a function if the named field exists.
 
 ifTableNotExists ( $table, $func,... $params)
 Only run a function if a table does not exist.
 
 migratePagelinks ()
 
 migrateTemplatelinks ()
 
 modifyField ( $table, $field, $patch, $fullpath=false)
 Modify an existing field.
 
 modifyTable ( $table, $patch, $fullpath=false)
 Modify an existing table, similar to modifyField.
 
 rebuildLocalisationCache ()
 Rebuilds the localisation cache.
 
 runMaintenance ( $class, $unused='')
 Run a maintenance script.
 

Protected Attributes

DatabasePostgres $db
 
- Protected Attributes inherited from MediaWiki\Installer\DatabaseUpdater
HookContainer null $autoExtensionHookContainer
 
IMaintainableDatabase $db
 Handle to the database subclass.
 
array $extensionUpdates = []
 List of extension-provided database updates.
 
array $extensionUpdatesWithVirtualDomains = []
 List of extension-provided database updates on virtual domain dbs.
 
resource null $fileHandle = null
 File handle for SQL output.
 
Maintenance $maintenance
 
string[] $postDatabaseUpdateMaintenance
 Scripts to run after database update Should be a subclass of LoggedUpdateMaintenance.
 
bool $shared = false
 
bool $skipSchema = false
 Flag specifying whether to skip schema (e.g., SQL-only) updates.
 
array $updates = []
 Array of updates to perform on the database.
 
array $updatesSkipped = []
 Array of updates that were skipped.
 

Additional Inherited Members

- Public Member Functions inherited from MediaWiki\Installer\DatabaseUpdater
 addExtensionField ( $tableName, $columnName, $sqlPath)
 Add a field to an existing extension table.
 
 addExtensionIndex ( $tableName, $indexName, $sqlPath)
 Add an index to an existing extension table.
 
 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.
 
 addExtensionUpdate (array $update)
 Add a new update coming from an extension.
 
 addExtensionUpdateOnVirtualDomain (array $update)
 Add a new update coming from an extension on virtual domain databases.
 
 addPostDatabaseUpdateMaintenance ( $class)
 Add a maintenance script to be run after the database updates are complete.
 
 doUpdates (array $what=[ 'core', 'extensions', 'stats'])
 Do all the updates.
 
 dropExtensionField ( $tableName, $columnName, $sqlPath)
 Drop a field from an extension table.
 
 dropExtensionIndex ( $tableName, $indexName, $sqlPath)
 Drop an index from an extension table Intended for use in LoadExtensionSchemaUpdates hook handlers.
 
 dropExtensionTable ( $tableName, $sqlPath=false)
 Drop an extension table.
 
 fieldExists ( $tableName, $fieldName)
 
 getDB ()
 Get a database connection to run updates.
 
 getPostDatabaseUpdateMaintenance ()
 
 getSchemaVars ()
 Get appropriate schema variables in the current database connection.
 
 insertInitialUpdateKeys ()
 Add initial keys to the updatelog table.
 
 insertUpdateRow ( $key, $val=null)
 Helper function: Add a key to the updatelog table.
 
 modifyExtensionField ( $tableName, $fieldName, $sqlPath)
 Modify an existing field in an extension table.
 
 modifyExtensionTable ( $tableName, $sqlPath)
 Modify an existing extension table.
 
 output ( $str)
 Output some text.
 
 patchPath (IDatabase $db, $patch)
 Get the full path of a patch file.
 
 purgeCache ()
 Purge various database caches.
 
 renameExtensionIndex ( $tableName, $oldIndexName, $newIndexName, $sqlPath, $skipBothIndexExistWarning=false)
 Rename an index on an extension table Intended for use in LoadExtensionSchemaUpdates hook handlers.
 
 setAutoExtensionHookContainer (HookContainer $hookContainer)
 Set the HookContainer to use for loading extension schema updates.
 
 setFileAccess ()
 Set any .htaccess files or equivalent for storage repos.
 
 tableExists ( $tableName)
 
 updateRowExists ( $key)
 Helper function: check if the given key is present in the updatelog table.
 
- Static Public Member Functions inherited from MediaWiki\Installer\DatabaseUpdater
static newForDB (IMaintainableDatabase $db, $shared=false, Maintenance $maintenance=null)
 
- Public Attributes inherited from MediaWiki\Installer\DatabaseUpdater
const REPLICATION_WAIT_TIMEOUT = 300
 

Detailed Description

Class for handling updates to Postgres databases.

Since
1.17

Definition at line 41 of file PostgresUpdater.php.

Member Function Documentation

◆ addPgExtIndex()

MediaWiki\Installer\PostgresUpdater::addPgExtIndex ( $table,
$index,
$type )
protected

◆ addPgField()

MediaWiki\Installer\PostgresUpdater::addPgField ( $table,
$field,
$type )
protected

Definition at line 681 of file PostgresUpdater.php.

References MediaWiki\Installer\DatabaseUpdater\output().

◆ addPgIndex()

MediaWiki\Installer\PostgresUpdater::addPgIndex ( $table,
$index,
$type,
$unique = false )
protected

Definition at line 810 of file PostgresUpdater.php.

References MediaWiki\Installer\DatabaseUpdater\output().

◆ addSequence()

MediaWiki\Installer\PostgresUpdater::addSequence ( $table,
$pkey,
$ns )
protected

◆ changeField()

MediaWiki\Installer\PostgresUpdater::changeField ( $table,
$field,
$newtype,
$default )
protected

Definition at line 692 of file PostgresUpdater.php.

References MediaWiki\Installer\DatabaseUpdater\output().

◆ changeFieldPurgeTable()

MediaWiki\Installer\PostgresUpdater::changeFieldPurgeTable ( $table,
$field,
$newtype,
$default )
protected

Definition at line 722 of file PostgresUpdater.php.

References MediaWiki\Installer\DatabaseUpdater\output().

◆ changeFkeyDeferrable()

MediaWiki\Installer\PostgresUpdater::changeFkeyDeferrable ( $table,
$field,
$clause )
protected

◆ changeNullableField()

MediaWiki\Installer\PostgresUpdater::changeNullableField ( $table,
$field,
$null,
$update = false )
protected

Definition at line 781 of file PostgresUpdater.php.

References MediaWiki\Installer\DatabaseUpdater\output().

◆ changePrimaryKey()

MediaWiki\Installer\PostgresUpdater::changePrimaryKey ( $table,
$shouldBe,
$constraintName = null )
protected

◆ checkIndex()

MediaWiki\Installer\PostgresUpdater::checkIndex ( $index,
$should_be,
$good_def )
protected

Definition at line 889 of file PostgresUpdater.php.

References MediaWiki\Installer\DatabaseUpdater\output().

◆ describeIndex()

MediaWiki\Installer\PostgresUpdater::describeIndex ( $idx)
protected

Definition at line 487 of file PostgresUpdater.php.

◆ describeTable()

MediaWiki\Installer\PostgresUpdater::describeTable ( $table)
protected

Definition at line 458 of file PostgresUpdater.php.

◆ dropConstraint()

MediaWiki\Installer\PostgresUpdater::dropConstraint ( $table,
$field,
$type,
$conname = null )
protected

Drop generic constraint.

If the constraint was created with a custom name, then the name must be queried and supplied as $conname, otherwise standard system suffixes and format would be assumed.

Parameters
string$table
string$field
string$type
string | null$conname
Returns
bool

Definition at line 949 of file PostgresUpdater.php.

Referenced by MediaWiki\Installer\PostgresUpdater\changeFkeyDeferrable(), MediaWiki\Installer\PostgresUpdater\changePrimaryKey(), and MediaWiki\Installer\PostgresUpdater\dropFkey().

◆ dropDefault()

MediaWiki\Installer\PostgresUpdater::dropDefault ( $table,
$field )
protected

Drop a default value from a field.

Since
1.32
Parameters
string$table
string$field

Definition at line 772 of file PostgresUpdater.php.

References MediaWiki\Installer\DatabaseUpdater\output().

◆ dropFkey()

MediaWiki\Installer\PostgresUpdater::dropFkey ( $table,
$field )
protected

◆ dropPgField()

MediaWiki\Installer\PostgresUpdater::dropPgField ( $table,
$field )
protected

Definition at line 670 of file PostgresUpdater.php.

References MediaWiki\Installer\DatabaseUpdater\output().

◆ dropPgIndex()

MediaWiki\Installer\PostgresUpdater::dropPgIndex ( $table,
$index )
protected

Definition at line 882 of file PostgresUpdater.php.

References MediaWiki\Installer\DatabaseUpdater\output().

◆ dropSequence()

MediaWiki\Installer\PostgresUpdater::dropSequence ( $table,
$ns )
protected

Definition at line 596 of file PostgresUpdater.php.

References MediaWiki\Installer\DatabaseUpdater\output().

◆ fkeyDeltype()

MediaWiki\Installer\PostgresUpdater::fkeyDeltype ( $fkey)
protected

Definition at line 539 of file PostgresUpdater.php.

◆ getCoreUpdateList()

MediaWiki\Installer\PostgresUpdater::getCoreUpdateList ( )
protected
Returns
array

Reimplemented from MediaWiki\Installer\DatabaseUpdater.

Definition at line 51 of file PostgresUpdater.php.

◆ getInitialUpdateKeys()

MediaWiki\Installer\PostgresUpdater::getInitialUpdateKeys ( )
protected

Get an array of update keys to insert into the updatelog table after a new installation.

The named operations will then be skipped by a subsequent update.

Add keys here to skip updates that are redundant or harmful on a new installation, for example reducing field sizes, adding constraints, etc.

Returns
string[]

Reimplemented from MediaWiki\Installer\DatabaseUpdater.

Definition at line 447 of file PostgresUpdater.php.

◆ renameIndex()

MediaWiki\Installer\PostgresUpdater::renameIndex ( $table,
$oldIndex,
$newIndex,
$skipBothIndexExistWarning = false,
$patch = false,
$fullpath = false )
protected

Rename an index from an existing table.

Note
Code in a LoadExtensionSchemaUpdates handler should use renameExtensionIndex instead!
Parameters
string$tableName of the table to modify
string$oldIndexOld name of the index
string$newIndexNew name of the index
bool$skipBothIndexExistWarningWhether to warn if both the old and new indexes exist.
string$patchPath to the patch file
bool$fullpathWhether to treat $patch path as a relative or not
Returns
bool False if this was skipped because schema changes are skipped

Reimplemented from MediaWiki\Installer\DatabaseUpdater.

Definition at line 635 of file PostgresUpdater.php.

References MediaWiki\Installer\DatabaseUpdater\output().

◆ renameSequence()

MediaWiki\Installer\PostgresUpdater::renameSequence ( $old,
$new )
protected

Definition at line 603 of file PostgresUpdater.php.

References MediaWiki\Installer\DatabaseUpdater\output().

◆ renameTable()

MediaWiki\Installer\PostgresUpdater::renameTable ( $old,
$new,
$patch = false )
protected

◆ ruleDef()

MediaWiki\Installer\PostgresUpdater::ruleDef ( $table,
$rule )
protected

Definition at line 558 of file PostgresUpdater.php.

◆ setDefault()

MediaWiki\Installer\PostgresUpdater::setDefault ( $table,
$field,
$default )
protected

◆ setSequenceOwner()

MediaWiki\Installer\PostgresUpdater::setSequenceOwner ( $table,
$pkey,
$seq )
protected

Definition at line 615 of file PostgresUpdater.php.

References MediaWiki\Installer\DatabaseUpdater\output().

Member Data Documentation

◆ $db

DatabasePostgres MediaWiki\Installer\PostgresUpdater::$db
protected

Definition at line 46 of file PostgresUpdater.php.


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