Fix 12384 : comment on maintenance/*php files
[lhc/web/wiklou.git] / maintenance / deleteRevision.php
1 <?php
2 /**
3 * Delete a given list of revision.
4 * The revision is in fact moved to the archive table.
5 *
6 * @file
7 * @ingroup Maintenance
8 */
9
10 require_once( 'commandLine.inc' );
11
12 $dbw = wfGetDB( DB_MASTER );
13
14 if ( count( $args ) == 0 ) {
15 echo "Usage: php deleteRevision.php <revid> [<revid> ...]\n";
16 exit(1);
17 }
18
19 echo "Deleting revision(s) " . implode( ',', $args ) . " from ".wfWikiID()."...\n";
20
21 $affected = 0;
22 foreach ( $args as $revID ) {
23 $dbw->insertSelect( 'archive', array( 'page', 'revision' ),
24 array(
25 'ar_namespace' => 'page_namespace',
26 'ar_title' => 'page_title',
27 'ar_comment' => 'rev_comment',
28 'ar_user' => 'rev_user',
29 'ar_user_text' => 'rev_user_text',
30 'ar_timestamp' => 'rev_timestamp',
31 'ar_minor_edit' => 'rev_minor_edit',
32 'ar_rev_id' => 'rev_id',
33 'ar_text_id' => 'rev_text_id',
34 ), array(
35 'rev_id' => $revID,
36 'page_id = rev_page'
37 ), $fname
38 );
39 if ( !$dbw->affectedRows() ) {
40 echo "Revision $revID not found\n";
41 } else {
42 $affected += $dbw->affectedRows();
43 $dbw->delete( 'revision', array( 'rev_id' => $revID ) );
44 }
45 }
46
47 print "Deleted $affected revisions\n";
48