summaryrefslogtreecommitdiff
path: root/docs/maintenance.txt
blob: 988ff28093d7c31914fedd680962d273579bdb5f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
Prior to version 1.16, maintenance scripts were a hodgepodge of code that
had no cohesion or formal method of action. Beginning in 1.16, maintenance
scripts have been cleaned up to use a unified class.

1. Directory structure
2. How to run a script
3. How to write your own

1. DIRECTORY STRUCTURE
  The /maintenance directory of a MediaWiki installation contains several
subdirectories, all of which have unique purposes.

2. HOW TO RUN A SCRIPT
  Ridiculously simple, just call 'php someScript.php' that's in the top-
level /maintenance directory.

Example:
  php clear_stats.php
  
The following parameters are available to all maintenance scripts
--help   : Print a help message
--quiet  : Quiet non-error output
--dbuser : The database user to use for the script (if needed)
--dbpass : Same as above (if needed)
--conf   : Location of LocalSettings.php, if not default
--wiki   : For specifying the wiki ID
--batch-size : If the script supports batch operations, do this many per batch

3. HOW TO WRITE YOUR OWN
Make a file in the maintenance directory called myScript.php or something.
In it, write the following:

==BEGIN==

<?php

require_once( "Maintenance.php" );

class DemoMaint extends Maintenance {

  public function __construct() {
    parent::__construct();
  }

  public function execute() {
  }
}

$maintClass = "DemoMaint";
require_once( RUN_MAINTENANCE_IF_MAIN );

==END==

That's it. In the execute() method, you have access to all of the normal
MediaWiki functions, so you can get a DB connection, use the cache, etc.
For full docs on the Maintenance class, see the auto-generated docs at
http://svn.wikimedia.org/doc/classMaintenance.html