From 4f24580f96415b99894c89c0310306632ad13b64 Mon Sep 17 00:00:00 2001 From: Chad Horohoe Date: Mon, 16 Aug 2010 14:23:28 +0000 Subject: [PATCH] Add a post-update maintenance script list, moved deleteDefaultMessages into it. --- includes/AutoLoader.php | 1 + includes/installer/DatabaseUpdater.php | 8 ++++++++ maintenance/deleteDefaultMessages.php | 9 +++++---- maintenance/updaters.inc | 20 ++++++++++---------- 4 files changed, 24 insertions(+), 14 deletions(-) diff --git a/includes/AutoLoader.php b/includes/AutoLoader.php index d864253dcb..4040ed97c5 100644 --- a/includes/AutoLoader.php +++ b/includes/AutoLoader.php @@ -668,6 +668,7 @@ $wgAutoloadLocalClasses = array( 'DbTestRecorder' => 'maintenance/parserTests.inc', 'DeleteArchivedFilesImplementation' => 'maintenance/deleteArchivedFiles.inc', 'DeleteArchivedRevisionsImplementation' => 'maintenance/deleteArchivedRevisions.inc', + 'DeleteDefaultMessages' => 'maintenance/deleteDefaultMessages.php', 'DummyTermColorer' => 'maintenance/parserTests.inc', 'ParserTest' => 'maintenance/parserTests.inc', 'ParserTestParserHook' => 'maintenance/parserTestsParserHook.php', diff --git a/includes/installer/DatabaseUpdater.php b/includes/installer/DatabaseUpdater.php index 7f4c75215d..e3baaaae2b 100644 --- a/includes/installer/DatabaseUpdater.php +++ b/includes/installer/DatabaseUpdater.php @@ -20,6 +20,10 @@ abstract class DatabaseUpdater { protected $shared = false; + protected $postDatabaseUpdateMaintenance = array( + 'DeleteDefaultMessages' + ); + protected function __construct( $db, $shared ) { $this->db = $db; $this->shared = $shared; @@ -37,6 +41,10 @@ abstract class DatabaseUpdater { public function getDB() { return $this->db; } + public function getPostDatabaseUpdateMaintenance() { + return $this->postDatabaseUpdateMaintenance; + } + public function doUpdates() { global $IP, $wgVersion; require_once( "$IP/maintenance/updaters.inc" ); diff --git a/maintenance/deleteDefaultMessages.php b/maintenance/deleteDefaultMessages.php index 2aa37c8f96..b79b2dd23d 100644 --- a/maintenance/deleteDefaultMessages.php +++ b/maintenance/deleteDefaultMessages.php @@ -31,10 +31,9 @@ class DeleteDefaultMessages extends Maintenance { } public function execute() { - self::reallyExecute(); - } - - public static function reallyExecute() { + + $this->output( 'Deleting old default messages (this may take a long time!)...', 'msg' ); + $user = 'MediaWiki default'; $reason = 'No longer required'; @@ -65,6 +64,8 @@ class DeleteDefaultMessages extends Maintenance { $article->doDeleteArticle( $reason ); $dbw->commit(); } + + $this->output( 'done!', 'msg' ); } } diff --git a/maintenance/updaters.inc b/maintenance/updaters.inc index 1e590b7888..a66fbb2d28 100644 --- a/maintenance/updaters.inc +++ b/maintenance/updaters.inc @@ -876,7 +876,7 @@ function maybe_do_profiling_memory_update() { function do_stats_init() { // Sometimes site_stats table is not properly populated. global $wgDatabase; - wfOut( "Checking site_stats row..." ); + wfOut( "\nChecking site_stats row..." ); $row = $wgDatabase->selectRow( 'site_stats', '*', array( 'ss_row_id' => 1 ), __METHOD__ ); if ( $row === false ) { wfOut( "data is missing! rebuilding...\n" ); @@ -915,7 +915,7 @@ function purge_cache() { } function do_all_updates( $shared = false, $purge = true ) { - global $wgSharedDB, $wgSharedTables, $wgDatabase, $wgDBtype; + global $wgDatabase, $wgDBtype; $updater = DatabaseUpdater::newForDb( $wgDatabase, $shared ); @@ -923,17 +923,17 @@ function do_all_updates( $shared = false, $purge = true ) { $updater->doUpdates(); - if ( $wgDBtype === 'postgres' ) { - return; - } - - wfOut( "Deleting old default messages (this may take a long time!)..." ); if ( !defined( 'MW_NO_SETUP' ) ) { define( 'MW_NO_SETUP', true ); } - require_once 'deleteDefaultMessages.php'; - DeleteDefaultMessages::reallyExecute(); - wfOut( "Done\n" ); + + foreach( $updater->getPostDatabaseUpdateMaintenance() as $maint ) { + call_user_func_array( array( new $maint, 'execute' ), array() ); + } + + if ( $wgDBtype === 'postgres' ) { + return; + } do_stats_init(); -- 2.20.1