MediaWiki  master
PostgresUpdater Class Reference

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

Inheritance diagram for PostgresUpdater:
Collaboration diagram for PostgresUpdater:

Protected Member Functions

 addPgEnumValue ( $type, $value)
 Add a value to an existing PostgreSQL enum type. More...
 
 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. More...
 
 dropDefault ( $table, $field)
 Drop a default value from a field. More...
 
 dropFkey ( $table, $field)
 
 dropPgField ( $table, $field)
 
 dropPgIndex ( $table, $index)
 
 dropSequence ( $table, $ns)
 
 fkeyDeltype ( $fkey)
 
 getCoreUpdateList ()
 
 renameIndex ( $table, $old, $new, $skipBothIndexExistWarning=false, $a=false, $b=false)
 Rename an index from an existing table. More...
 
 renameSequence ( $old, $new)
 
 renameTable ( $old, $new, $patch=false)
 
 ruleDef ( $table, $rule)
 
 setDefault ( $table, $field, $default)
 
 setSequenceOwner ( $table, $pkey, $seq)
 
- Protected Member Functions inherited from DatabaseUpdater
 __construct (IMaintainableDatabase &$db, $shared, Maintenance $maintenance=null)
 
 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...
 
 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...
 
 doCollationUpdate ()
 Update CategoryLinks collation. More...
 
 doConvertDjvuMetadata ()
 
 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...
 
 ifTableNotExists ( $table, $func,... $params)
 Only run a function if a table does not exist. More...
 
 migrateTemplatelinks ()
 
 modifyField ( $table, $field, $patch, $fullpath=false)
 Modify an existing field. More...
 
 modifyTable ( $table, $patch, $fullpath=false)
 Modify an existing table, similar to modifyField. More...
 
 rebuildLocalisationCache ()
 Rebuilds the localisation cache. More...
 
 runMaintenance ( $class, $script)
 Run a maintenance script. More...
 

Protected Attributes

DatabasePostgres $db
 
- 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 null $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...
 

Additional Inherited Members

- 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 ()
 
 getSchemaVars ()
 Get appropriate schema variables in the current database connection. More...
 
 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 equivalent for storage repos. More...
 
 tableExists ( $tableName)
 
 updateRowExists ( $key)
 Helper function: check if the given key is present in the updatelog table. More...
 
- 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
 

Detailed Description

Class for handling updates to Postgres databases.

Since
1.17

Definition at line 32 of file PostgresUpdater.php.

Member Function Documentation

◆ addPgEnumValue()

PostgresUpdater::addPgEnumValue (   $type,
  $value 
)
protected

Add a value to an existing PostgreSQL enum type.

Since
1.31
Parameters
string$typeType name. Must be in the core schema.
string$valueValue to add.

Definition at line 854 of file PostgresUpdater.php.

References $type, and DatabaseUpdater\output().

◆ addPgExtIndex()

PostgresUpdater::addPgExtIndex (   $table,
  $index,
  $type 
)
protected

◆ addPgField()

PostgresUpdater::addPgField (   $table,
  $field,
  $type 
)
protected

Definition at line 704 of file PostgresUpdater.php.

References DatabaseUpdater\output().

◆ addPgIndex()

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

Definition at line 825 of file PostgresUpdater.php.

References DatabaseUpdater\output().

◆ addSequence()

PostgresUpdater::addSequence (   $table,
  $pkey,
  $ns 
)
protected

Definition at line 606 of file PostgresUpdater.php.

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

◆ changeField()

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

Definition at line 715 of file PostgresUpdater.php.

References $res, and DatabaseUpdater\output().

◆ changeFieldPurgeTable()

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

Definition at line 741 of file PostgresUpdater.php.

References $res, and DatabaseUpdater\output().

◆ changeFkeyDeferrable()

PostgresUpdater::changeFkeyDeferrable (   $table,
  $field,
  $clause 
)
protected

Definition at line 903 of file PostgresUpdater.php.

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

◆ changeNullableField()

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

Definition at line 796 of file PostgresUpdater.php.

References DatabaseUpdater\output().

◆ changePrimaryKey()

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

Definition at line 956 of file PostgresUpdater.php.

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

◆ checkIndex()

PostgresUpdater::checkIndex (   $index,
  $should_be,
  $good_def 
)
protected

Definition at line 938 of file PostgresUpdater.php.

References DatabaseUpdater\output().

◆ describeIndex()

PostgresUpdater::describeIndex (   $idx)
protected

Definition at line 510 of file PostgresUpdater.php.

References $res.

◆ describeTable()

PostgresUpdater::describeTable (   $table)
protected

Definition at line 481 of file PostgresUpdater.php.

References $res.

◆ dropConstraint()

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 998 of file PostgresUpdater.php.

References $type.

Referenced by changeFkeyDeferrable(), changePrimaryKey(), and dropFkey().

◆ dropDefault()

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

Drop a default value from a field.

Since
1.32
Parameters
string$table
string$field

Definition at line 787 of file PostgresUpdater.php.

References DatabaseUpdater\output().

◆ dropFkey()

PostgresUpdater::dropFkey (   $table,
  $field 
)
protected

Definition at line 888 of file PostgresUpdater.php.

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

◆ dropPgField()

PostgresUpdater::dropPgField (   $table,
  $field 
)
protected

Definition at line 693 of file PostgresUpdater.php.

References DatabaseUpdater\output().

◆ dropPgIndex()

PostgresUpdater::dropPgIndex (   $table,
  $index 
)
protected

Definition at line 931 of file PostgresUpdater.php.

References DatabaseUpdater\output().

◆ dropSequence()

PostgresUpdater::dropSequence (   $table,
  $ns 
)
protected

Definition at line 619 of file PostgresUpdater.php.

References DatabaseUpdater\output().

◆ fkeyDeltype()

PostgresUpdater::fkeyDeltype (   $fkey)
protected

Definition at line 562 of file PostgresUpdater.php.

◆ getCoreUpdateList()

PostgresUpdater::getCoreUpdateList ( )
protected
Returns
array

Reimplemented from DatabaseUpdater.

Definition at line 42 of file PostgresUpdater.php.

References true.

◆ renameIndex()

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

Rename an index from an existing table.

Stability: stable
to override
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 the 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 DatabaseUpdater.

Definition at line 658 of file PostgresUpdater.php.

References DatabaseUpdater\output().

◆ renameSequence()

PostgresUpdater::renameSequence (   $old,
  $new 
)
protected

Definition at line 626 of file PostgresUpdater.php.

References DatabaseUpdater\output().

◆ renameTable()

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

Definition at line 646 of file PostgresUpdater.php.

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

◆ ruleDef()

PostgresUpdater::ruleDef (   $table,
  $rule 
)
protected

Definition at line 581 of file PostgresUpdater.php.

◆ setDefault()

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

Definition at line 771 of file PostgresUpdater.php.

References DatabaseUpdater\output().

Referenced by addSequence().

◆ setSequenceOwner()

PostgresUpdater::setSequenceOwner (   $table,
  $pkey,
  $seq 
)
protected

Definition at line 638 of file PostgresUpdater.php.

References DatabaseUpdater\output().

Member Data Documentation

◆ $db

DatabasePostgres PostgresUpdater::$db
protected

Definition at line 37 of file PostgresUpdater.php.


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