From 183851b06bd6c52f3cae5375f433da720d410447 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Wed, 11 Oct 2006 18:12:39 +0000 Subject: MediaWiki 1.7.1 wiederhergestellt --- maintenance/deleteOrphanedRevisions.php | 55 +++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 maintenance/deleteOrphanedRevisions.php (limited to 'maintenance/deleteOrphanedRevisions.php') diff --git a/maintenance/deleteOrphanedRevisions.php b/maintenance/deleteOrphanedRevisions.php new file mode 100644 index 00000000..b4f5b517 --- /dev/null +++ b/maintenance/deleteOrphanedRevisions.php @@ -0,0 +1,55 @@ + + * @todo More efficient cleanup of text records + */ + +$options = array( 'report', 'help' ); +require_once( 'commandLine.inc' ); +require_once( 'deleteOrphanedRevisions.inc.php' ); +echo( "Delete Orphaned Revisions\n" ); + +if( isset( $options['help'] ) ) + showUsage(); + +$report = isset( $options['report'] ); + +$dbw =& wfGetDB( DB_MASTER ); +$dbw->immediateBegin(); +extract( $dbw->tableNames( 'page', 'revision' ) ); + +# Find all the orphaned revisions +echo( "Checking for orphaned revisions..." ); +$sql = "SELECT rev_id FROM {$revision} LEFT JOIN {$page} ON rev_page = page_id WHERE page_namespace IS NULL"; +$res = $dbw->query( $sql, 'deleteOrphanedRevisions' ); + +# Stash 'em all up for deletion (if needed) +while( $row = $dbw->fetchObject( $res ) ) + $revisions[] = $row->rev_id; +$dbw->freeResult( $res ); +$count = count( $revisions ); +echo( "found {$count}.\n" ); + +# Nothing to do? +if( $report || $count == 0 ) { + $dbw->immediateCommit(); + exit(); +} + +# Delete each revision +echo( "Deleting..." ); +deleteRevisions( $revisions, $dbw ); +echo( "done.\n" ); + +# Close the transaction and call the script to purge unused text records +$dbw->immediateCommit(); +require_once( 'purgeOldText.inc' ); +PurgeRedundantText( true ); + +?> \ No newline at end of file -- cgit v1.2.3-54-g00ecf