]> scripts.mit.edu Git - autoinstalls/mediawiki.git/blobdiff - maintenance/deleteArchivedRevisions.php
MediaWiki 1.17.0
[autoinstalls/mediawiki.git] / maintenance / deleteArchivedRevisions.php
index c3f8bf11e1bf525a681b8b93057cdc375d95af36..0faa0abbff4878e0a52c6d8cdbbbaed820df4237 100644 (file)
@@ -23,7 +23,8 @@
  * Shamelessly stolen from deleteOldRevisions.php by Rob Church :)
  */
 
-require_once( dirname(__FILE__) . '/Maintenance.php' );
+require_once( dirname( __FILE__ ) . '/Maintenance.php' );
+require_once( dirname( __FILE__ ) . '/deleteArchivedRevisions.inc' );
 
 class DeleteArchivedRevisions extends Maintenance {
        public function __construct() {
@@ -32,31 +33,17 @@ class DeleteArchivedRevisions extends Maintenance {
                $this->addOption( 'delete', 'Performs the deletion' );
        }
 
+       public function handleOutput( $str ) {
+               $this->output( $str );
+       }
+
        public function execute() {
                $this->output( "Delete archived revisions\n\n" );
                # Data should come off the master, wrapped in a transaction
-               $dbw = wfGetDB( DB_MASTER );
-               if( $this->hasOption('delete') ) {
-                       $dbw->begin();
-       
-                       $tbl_arch = $dbw->tableName( 'archive' );
-       
-                       # Delete as appropriate
-                       $this->output( "Deleting archived revisions... " );
-                       $dbw->query( "TRUNCATE TABLE $tbl_arch" );
-       
-                       $count = $dbw->affectedRows();
-                       $deletedRows = $count != 0;
-       
-                       $this->output( "done. $count revisions deleted.\n" );
-       
-                       # This bit's done
-                       # Purge redundant text records
-                       $dbw->commit();
-                       if( $deletedRows ) {
-                               $this->purgeRedundantText( true );
-                       }
+               if ( $this->hasOption( 'delete' ) ) {
+                       DeleteArchivedRevisionsImplementation::doDelete( $this );
                } else {
+                       $dbw = wfGetDB( DB_MASTER );
                        $res = $dbw->selectRow( 'archive', 'COUNT(*) as count', array(), __FUNCTION__ );
                        $this->output( "Found {$res->count} revisions to delete.\n" );
                        $this->output( "Please run the script again with the --delete option to really delete the revisions.\n" );
@@ -65,4 +52,4 @@ class DeleteArchivedRevisions extends Maintenance {
 }
 
 $maintClass = "DeleteArchivedRevisions";
-require_once( DO_MAINTENANCE );
+require_once( RUN_MAINTENANCE_IF_MAIN );