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.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[]

 
 migrateSearchindex ()
 Replaces unique index with primary key,modifies si_title length.
 
 renameIndex ( $table, $old, $new, $skipBothIndexExistWarning=false, $a=false, $b=false)
 
 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.
 
 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.
 
 migrateCategorylinks ()
 
 migratePagelinks ()
 
 migrateTemplatelinks ()
 
 modifyField ( $table, $field, $patch, $fullpath=false)
 Modify an existing field.
 
 modifyFieldIfNullable ( $table, $field, $patch, $fullpath=false)
 Modify a field if the field exists and is nullable.
 
 modifyPrimaryKey ( $table, array $columns, $patch, $fullpath=false)
 Modify or set a PRIMARY KEY on a table.
 
 modifyTable ( $table, $patch, $fullpath=false)
 Modify an existing table, similar to modifyField.
 
 modifyTableIfFieldNotExists ( $table, $field, $patch, $fullpath=false, $fieldBeingModified=null)
 Modify a table if a field doesn't exist.
 
 normalizeCollation ()
 
 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
 
class string< Maintenance >[] $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 to 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 28 of file PostgresUpdater.php.

Member Function Documentation

◆ addPgExtIndex()

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

Definition at line 605 of file PostgresUpdater.php.

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

◆ addPgField()

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

Definition at line 429 of file PostgresUpdater.php.

References MediaWiki\Installer\DatabaseUpdater\output().

◆ addPgIndex()

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

Definition at line 587 of file PostgresUpdater.php.

References MediaWiki\Installer\DatabaseUpdater\output().

◆ addSequence()

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

Definition at line 295 of file PostgresUpdater.php.

References MediaWiki\Installer\DatabaseUpdater\output(), and MediaWiki\Installer\PostgresUpdater\setDefault().

◆ changeField()

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

Definition at line 446 of file PostgresUpdater.php.

References MediaWiki\Installer\DatabaseUpdater\output().

◆ changeFieldPurgeTable()

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

Definition at line 482 of file PostgresUpdater.php.

References MediaWiki\Installer\DatabaseUpdater\output().

◆ changeFkeyDeferrable()

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

Definition at line 645 of file PostgresUpdater.php.

References MediaWiki\Installer\PostgresUpdater\dropConstraint(), and MediaWiki\Installer\DatabaseUpdater\output().

◆ changeNullableField()

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

Definition at line 552 of file PostgresUpdater.php.

References MediaWiki\Installer\DatabaseUpdater\output().

◆ changePrimaryKey()

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

Definition at line 712 of file PostgresUpdater.php.

References MediaWiki\Installer\PostgresUpdater\dropConstraint(), and MediaWiki\Installer\DatabaseUpdater\output().

◆ checkIndex()

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

Definition at line 689 of file PostgresUpdater.php.

References MediaWiki\Installer\DatabaseUpdater\output().

◆ describeIndex()

MediaWiki\Installer\PostgresUpdater::describeIndex ( $idx)
protected
Parameters
string$idx
Returns
array|null

Definition at line 185 of file PostgresUpdater.php.

◆ describeTable()

MediaWiki\Installer\PostgresUpdater::describeTable ( $table)
protected
Parameters
string$table
Returns
array[]|null

Definition at line 152 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 754 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 537 of file PostgresUpdater.php.

References MediaWiki\Installer\DatabaseUpdater\output().

◆ dropFkey()

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

Definition at line 621 of file PostgresUpdater.php.

References MediaWiki\Installer\PostgresUpdater\dropConstraint(), and MediaWiki\Installer\DatabaseUpdater\output().

◆ dropPgField()

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

Definition at line 413 of file PostgresUpdater.php.

References MediaWiki\Installer\DatabaseUpdater\output().

◆ dropPgIndex()

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

Definition at line 677 of file PostgresUpdater.php.

References MediaWiki\Installer\DatabaseUpdater\output().

◆ dropSequence()

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

Definition at line 312 of file PostgresUpdater.php.

References MediaWiki\Installer\DatabaseUpdater\output().

◆ fkeyDeltype()

MediaWiki\Installer\PostgresUpdater::fkeyDeltype ( $fkey)
protected
Parameters
string$fkey
Returns
string|null

Definition at line 241 of file PostgresUpdater.php.

◆ getCoreUpdateList()

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

Reimplemented from MediaWiki\Installer\DatabaseUpdater.

Definition at line 38 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 137 of file PostgresUpdater.php.

◆ migrateSearchindex()

MediaWiki\Installer\PostgresUpdater::migrateSearchindex ( )
protected

◆ renameIndex()

MediaWiki\Installer\PostgresUpdater::renameIndex ( $table,
$old,
$new,
$skipBothIndexExistWarning = false,
$a = false,
$b = false )
protected
Parameters
string$table
string$old
string$new
bool$skipBothIndexExistWarning
string | false$a
bool$b
Returns
bool

Reimplemented from MediaWiki\Installer\DatabaseUpdater.

Definition at line 374 of file PostgresUpdater.php.

References MediaWiki\Installer\DatabaseUpdater\output().

◆ renameSequence()

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

Definition at line 323 of file PostgresUpdater.php.

References MediaWiki\Installer\DatabaseUpdater\output().

◆ renameTable()

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

Definition at line 353 of file PostgresUpdater.php.

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

◆ ruleDef()

MediaWiki\Installer\PostgresUpdater::ruleDef ( $table,
$rule )
protected
Parameters
string$table
string$rule
Returns
string|null

Definition at line 265 of file PostgresUpdater.php.

◆ setDefault()

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

Definition at line 517 of file PostgresUpdater.php.

References MediaWiki\Installer\DatabaseUpdater\output().

Referenced by MediaWiki\Installer\PostgresUpdater\addSequence().

◆ setSequenceOwner()

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

Definition at line 340 of file PostgresUpdater.php.

References MediaWiki\Installer\DatabaseUpdater\output().

Member Data Documentation

◆ $db

DatabasePostgres MediaWiki\Installer\PostgresUpdater::$db
protected

Definition at line 33 of file PostgresUpdater.php.


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