手册:DatabaseUpdater.php
MediaWiki文件: DatabaseUpdater.php | |
---|---|
位置: | includes/installer/ |
源代码: | master • 1.42.3 • 1.41.4 • 1.39.10 |
类: | 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 )