summaryrefslogtreecommitdiff
path: root/docs/maintenance.txt
blob: 87071f2a237e87dc753f694e43c9a8f4c6fc733b (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 clearCacheStats.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
https://doc.wikimedia.org/mediawiki-core/master/php/html/classMaintenance.html