*Add a script to delete archived revisions
authorAaron Schulz <aaron@users.mediawiki.org>
Thu, 10 May 2007 21:05:10 +0000 (21:05 +0000)
committerAaron Schulz <aaron@users.mediawiki.org>
Thu, 10 May 2007 21:05:10 +0000 (21:05 +0000)
maintenance/deleteArchivedRevisions.inc [new file with mode: 0644]
maintenance/deleteArchivedRevisions.php [new file with mode: 0644]

diff --git a/maintenance/deleteArchivedRevisions.inc b/maintenance/deleteArchivedRevisions.inc
new file mode 100644 (file)
index 0000000..3e34606
--- /dev/null
@@ -0,0 +1,35 @@
+<?php\r
+\r
+/**\r
+ * Support functions for the deleteOldRevisions script\r
+ *\r
+ * @addtogroup Maintenance\r
+ * @author Rob Church <robchur@gmail.com>\r
+ */\r
\r
+require_once( 'purgeOldText.inc' );\r
+\r
+function DeleteArchivedRevisions( $delete = false ) {\r
+\r
+       # Data should come off the master, wrapped in a transaction\r
+       $dbw = wfGetDB( DB_MASTER );\r
+       $dbw->begin();\r
+       \r
+       $tbl_arch = $dbw->tableName( 'archive' );\r
+       # Delete as appropriate\r
+       echo( "Deleting archived revisions..." );\r
+       $dbw->query( "TRUNCATE TABLE $tbl_arch" );\r
+       echo( "done.\n" );\r
+       \r
+       $delete = $dbw->affectedRows() != 0;\r
+       \r
+       # This bit's done\r
+       # Purge redundant text records\r
+       $dbw->commit();\r
+       if( $delete ) {\r
+               PurgeRedundantText( true );\r
+       }\r
+\r
+}\r
+\r
+?>
\ No newline at end of file
diff --git a/maintenance/deleteArchivedRevisions.php b/maintenance/deleteArchivedRevisions.php
new file mode 100644 (file)
index 0000000..fc6a5f8
--- /dev/null
@@ -0,0 +1,30 @@
+<?php\r
+\r
+/**\r
+ * Delete old (non-current) revisions from the database\r
+ *\r
+ * @addtogroup Maintenance\r
+ * @author Rob Church <robchur@gmail.com>\r
+ */\r
+\r
+$options = array( 'delete', 'help' );\r
+require_once( 'commandLine.inc' );\r
+require_once( 'deleteArchivedRevisions.inc' );\r
+\r
+echo( "Delete Archived Revisions\n\n" );\r
+\r
+if( @$options['help'] ) {\r
+       ShowUsage();\r
+} else {\r
+       DeleteArchivedRevisions( @$options['delete'] );\r
+}\r
+\r
+function ShowUsage() {\r
+       echo( "Deletes all archived revisions.\n\n" );\r
+       echo( "These revisions will no longer be restorable.\n\n" );\r
+       echo( "Usage: php deleteArchivedRevisions.php [--delete|--help]\n\n" );\r
+       echo( "delete : Performs the deletion\n" );\r
+       echo( "  help : Show this usage information\n" );\r
+}\r
+\r
+?>
\ No newline at end of file