手册:DatabaseUpdater.php
Appearance
| MediaWiki文件: DatabaseUpdater.php | |
|---|---|
| 位置: | includes/installer/ (1.46及以后为includes/Installer/) |
| 源代码: | master • 1.45.1 • 1.44.3 • 1.43.6 |
| 类: | MediaWiki\Installer\DatabaseUpdater |
“DatabaseUpdater”是用于处理数据库更新(例如,添加、修改和删除数据库表、字段和索引)的类。 MysqlUpdater.php、PostgresUpdater.php和SqliteUpdater.php扩展了这个类,当进行核心模式更改时,所有这些文件(以及用于各种数据库类型的tables.sql文件)都可能需要修改。 扩展通常通过LoadExtensionSchemaUpdates钩子函数来更改模式。 无论采用哪种方式,都需要创建SQL补丁文件。
函数
addExtensionField( $tableName, $columnName, $sqlPath )addExtensionIndex( $tableName, $indexName, $sqlPath )addExtensionTable( $tableName, $sqlPath )addExtensionUpdate( array $update )addPostDatabaseUpdateMaintenance( $class )doUpdates( array $what = [ 'core', 'extensions', 'stats' ] )dropExtensionField( $tableName, $columnName, $sqlPath )dropExtensionIndex( $tableName, $indexName, $sqlPath )dropExtensionTable( $tableName, $sqlPath = false )getDB()getPostDatabaseUpdateMaintenance()getSchemaVars()insertUpdateRow( $key, $val = null )modifyExtensionField( $tableName, $fieldName, $sqlPath )modifyExtensionTable( $tableName, $sqlPath )output( $str )patchPath( IDatabase $db, $patch )purgeCache()renameExtensionIndex( $tableName, $oldIndexName, $newIndexName,setAutoExtensionHookContainer( HookContainer $hookContainer )setFileAccess()tableExists( $tableName )updateRowExists( $key )