手册:DatabaseUpdater.php

This page is a translated version of the page Manual:DatabaseUpdater.php and the translation is 100% complete.

“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 )