deleteorphanedrevisions.php
来自「php 开发的内容管理系统」· PHP 代码 · 共 55 行
PHP
55 行
<?php/** * Maintenance script to delete revisions which refer to a nonexisting page * Sometimes manual deletion done in a rush leaves crap in the database * * @package MediaWiki * @subpackage Maintenance * @author Rob Church <robchur@gmail.com> * @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 revisionsecho( "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 revisionecho( "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 );?>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?