Drupal Node Revisions Cleanup

<?

$nodes = db_select('node', 'n')
    ->fields('n', array('nid','vid'))
    ->execute();

foreach ($nodes as $node)
{
    $revisions = db_select('node_revision', 'n')
        ->fields('n', array('vid'))
        ->condition('n.nid',$node->nid)
        ->condition('n.vid',$node->vid, '<')
        ->execute();

    $count = 0;

    foreach ($revisions as $rev)
    {
        // Uncomment below line to actually delete
        // node_revision_delete($rev->vid);  
        $count++;
    }

if ($count>0)
    echo '<a target="_blank" href="/node/'.$node->nid.'">node '.$node->nid.'</a><br>count '.$count.'<br>';

}

?>

Comments