* @since 1.17
*/
abstract class DatabaseUpdater {
+ const REPLICATION_WAIT_TIMEOUT = 300;
+
/**
* Array of updates to perform on the database
*
flush();
if ( $ret !== false ) {
$updatesDone[] = $origParams;
- $lbFactory->waitForReplication();
+ $lbFactory->waitForReplication( [ 'timeout' => self::REPLICATION_WAIT_TIMEOUT ] );
} else {
$updatesSkipped[] = [ $func, $params, $origParams ];
}
}
}
- /**
- * Updates the timestamps in the transcache table
- * @return bool
- */
- protected function doUpdateTranscacheField() {
- if ( $this->updateRowExists( 'convert transcache field' ) ) {
- $this->output( "...transcache tc_time already converted.\n" );
-
- return true;
- }
-
- return $this->applyPatch( 'patch-tc-timestamp.sql', false,
- "Converting tc_time from UNIX epoch to MediaWiki timestamp" );
- }
-
/**
* Update CategoryLinks collation
*/
}
}
+ /**
+ * Merge `image_comment_temp` into the `image` table
+ * @since 1.32
+ */
+ protected function migrateImageCommentTemp() {
+ global $wgCommentTableSchemaMigrationStage;
+ if ( $wgCommentTableSchemaMigrationStage > MIGRATION_OLD ) {
+ $this->output( "Merging image_comment_temp into the image table\n" );
+ $task = $this->maintenance->runChild(
+ MigrateImageCommentTemp::class, 'migrateImageCommentTemp.php'
+ );
+ $ok = $task->execute();
+ $this->output( $ok ? "done.\n" : "errors were encountered.\n" );
+ }
+ }
+
/**
* Migrate actors to the new 'actor' table
* @since 1.31
*/
protected function migrateActors() {
global $wgActorTableSchemaMigrationStage;
- if ( $wgActorTableSchemaMigrationStage >= MIGRATION_WRITE_NEW &&
+ if ( ( $wgActorTableSchemaMigrationStage & SCHEMA_COMPAT_WRITE_NEW ) &&
!$this->updateRowExists( 'MigrateActors' )
) {
$this->output(