X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=includes%2Finstaller%2FDatabaseUpdater.php;h=04132ad5777401ef696357a14ee84a1afefa2dc3;hp=2083500ed0b9cc6d7ed23f8f9ea69a15df9590b1;hb=ad136143c5de92257c4ad5459d3c39186fbf800a;hpb=3124a990a261779bacacc3a32edc63c39073a914 diff --git a/includes/installer/DatabaseUpdater.php b/includes/installer/DatabaseUpdater.php index 2083500ed0..04132ad577 100644 --- a/includes/installer/DatabaseUpdater.php +++ b/includes/installer/DatabaseUpdater.php @@ -150,7 +150,7 @@ abstract class DatabaseUpdater { * LoadExtensionSchemaUpdates hook. */ private function loadExtensions() { - if ( !defined( 'MEDIAWIKI_INSTALL' ) ) { + if ( !defined( 'MEDIAWIKI_INSTALL' ) || defined( 'MW_EXTENSIONS_LOADED' ) ) { return; // already loaded } $vars = Installer::getExistingLocalSettings(); @@ -162,7 +162,7 @@ abstract class DatabaseUpdater { // This will automatically add "AutoloadClasses" to $wgAutoloadClasses $data = $registry->readFromQueue( $queue ); - $hooks = [ 'wgHooks' => [ 'LoadExtensionSchemaUpdates' => [] ] ]; + $hooks = []; if ( isset( $data['globals']['wgHooks']['LoadExtensionSchemaUpdates'] ) ) { $hooks = $data['globals']['wgHooks']['LoadExtensionSchemaUpdates']; } @@ -1047,7 +1047,7 @@ abstract class DatabaseUpdater { * Sets the number of active users in the site_stats table */ protected function doActiveUsersInit() { - $activeUsers = $this->db->selectField( 'site_stats', 'ss_active_users', false, __METHOD__ ); + $activeUsers = $this->db->selectField( 'site_stats', 'ss_active_users', '', __METHOD__ ); if ( $activeUsers == -1 ) { $activeUsers = $this->db->selectField( 'recentchanges', 'COUNT( DISTINCT rc_user_text )', @@ -1227,8 +1227,28 @@ abstract class DatabaseUpdater { "maintenance/migrateComments.php.\n" ); $task = $this->maintenance->runChild( MigrateComments::class, 'migrateComments.php' ); - $task->execute(); - $this->output( "done.\n" ); + $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 && + !$this->updateRowExists( 'MigrateActors' ) + ) { + $this->output( + "Migrating actors to the 'actor' table, printing progress markers. For large\n" . + "databases, you may want to hit Ctrl-C and do this manually with\n" . + "maintenance/migrateActors.php.\n" + ); + $task = $this->maintenance->runChild( 'MigrateActors', 'migrateActors.php' ); + $ok = $task->execute(); + $this->output( $ok ? "done.\n" : "errors were encountered.\n" ); } } @@ -1243,4 +1263,23 @@ abstract class DatabaseUpdater { $this->output( "done.\n" ); } + /** + * Populate ar_rev_id, then make it not nullable + * @since 1.31 + */ + protected function populateArchiveRevId() { + $info = $this->db->fieldInfo( 'archive', 'ar_rev_id', __METHOD__ ); + if ( !$info ) { + throw new MWException( 'Missing ar_rev_id field of archive table. Should not happen.' ); + } + if ( $info->isNullable() ) { + $this->output( "Populating ar_rev_id.\n" ); + $task = $this->maintenance->runChild( 'PopulateArchiveRevId', 'populateArchiveRevId.php' ); + if ( $task->execute() ) { + $this->applyPatch( 'patch-ar_rev_id-not-null.sql', false, + 'Making ar_rev_id not nullable' ); + } + } + } + }