Merge "Pass revision being reverted to edit code"
[lhc/web/wiklou.git] / maintenance / deleteOrphanedRevisions.php
index 3d5c1a4..8d3f6b3 100644 (file)
@@ -26,6 +26,8 @@
 
 require_once __DIR__ . '/Maintenance.php';
 
+use Wikimedia\Rdbms\IDatabase;
+
 /**
  * Maintenance script that deletes revisions which refer to a nonexisting page.
  *
@@ -34,7 +36,8 @@ require_once __DIR__ . '/Maintenance.php';
 class DeleteOrphanedRevisions extends Maintenance {
        public function __construct() {
                parent::__construct();
-               $this->mDescription = "Maintenance script to delete revisions which refer to a nonexisting page";
+               $this->addDescription(
+                       'Maintenance script to delete revisions which refer to a nonexisting page' );
                $this->addOption( 'report', 'Prints out a count of affected revisions but doesn\'t delete them' );
        }
 
@@ -54,7 +57,7 @@ class DeleteOrphanedRevisions extends Maintenance {
                $res = $dbw->query( $sql, 'deleteOrphanedRevisions' );
 
                # Stash 'em all up for deletion (if needed)
-               $revisions = array();
+               $revisions = [];
                foreach ( $res as $row ) {
                        $revisions[] = $row->rev_id;
                }
@@ -82,15 +85,18 @@ class DeleteOrphanedRevisions extends Maintenance {
         * Do this inside a transaction
         *
         * @param array $id Array of revision id values
-        * @param DatabaseBase $dbw DatabaseBase class (needs to be a master)
+        * @param IDatabase $dbw Master DB handle
         */
        private function deleteRevs( $id, &$dbw ) {
                if ( !is_array( $id ) ) {
-                       $id = array( $id );
+                       $id = [ $id ];
                }
-               $dbw->delete( 'revision', array( 'rev_id' => $id ), __METHOD__ );
+               $dbw->delete( 'revision', [ 'rev_id' => $id ], __METHOD__ );
+
+               // Delete from ip_changes should a record exist.
+               $dbw->delete( 'ip_changes', [ 'ipc_rev_id' => $id ], __METHOD__ );
        }
 }
 
-$maintClass = "DeleteOrphanedRevisions";
+$maintClass = DeleteOrphanedRevisions::class;
 require_once RUN_MAINTENANCE_IF_MAIN;