/**
* @param Database $db
* @param bool $shared
- * @param Maintenance $maintenance
+ * @param Maintenance|null $maintenance
*
* @throws MWException
* @return DatabaseUpdater
*/
- public static function newForDB( Database $db, $shared = false, $maintenance = null ) {
+ public static function newForDB( Database $db, $shared = false, Maintenance $maintenance = null ) {
$type = $db->getType();
if ( in_array( $type, Installer::getDBTypes() ) ) {
$class = ucfirst( $type ) . 'Updater';
*
* @param string $tableName The table name
* @param string $fieldName The field to be modified
- * @param string $sqlPath The path to the SQL change path
+ * @param string $sqlPath The path to the SQL patch
*/
public function modifyExtensionField( $tableName, $fieldName, $sqlPath ) {
$this->extensionUpdates[] = [ 'modifyField', $tableName, $fieldName, $sqlPath, true ];
}
+ /**
+ * @since 1.31
+ *
+ * @param string $tableName The table name
+ * @param string $sqlPath The path to the SQL patch
+ */
+ public function modifyExtensionTable( $tableName, $sqlPath ) {
+ $this->extensionUpdates[] = [ 'modifyTable', $tableName, $sqlPath, true ];
+ }
+
/**
*
* @since 1.20
* 1.13...) with the values being arrays of updates, identical to how
* updaters.inc did it (for now)
*
- * @return array
+ * @return array[]
*/
abstract protected function getCoreUpdateList();
}
}
+ /**
+ * Migrate ar_text to modern storage
+ * @since 1.31
+ */
+ protected function migrateArchiveText() {
+ $this->output( "Migrating archive ar_text to modern storage.\n" );
+ $task = $this->maintenance->runChild( 'MigrateArchiveText', 'migrateArchiveText.php' );
+ $task->execute();
+ $this->output( "done.\n" );
+ }
+
}