Add a post-update maintenance script list, moved deleteDefaultMessages into it.
authorChad Horohoe <demon@users.mediawiki.org>
Mon, 16 Aug 2010 14:23:28 +0000 (14:23 +0000)
committerChad Horohoe <demon@users.mediawiki.org>
Mon, 16 Aug 2010 14:23:28 +0000 (14:23 +0000)
includes/AutoLoader.php
includes/installer/DatabaseUpdater.php
maintenance/deleteDefaultMessages.php
maintenance/updaters.inc

index d864253..4040ed9 100644 (file)
@@ -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',
index 7f4c752..e3baaaa 100644 (file)
@@ -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" );
index 2aa37c8..b79b2dd 100644 (file)
@@ -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' );
        }
 }
 
index 1e590b7..a66fbb2 100644 (file)
@@ -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();