29 require_once __DIR__ .
'/includes/BackupDumper.php';
33 parent::__construct();
36 This script dumps the wiki page or logging database into an
37 XML interchange wrapper format
for export or backup.
41 WARNING:
this is not a full database
dump! It is merely
for public export
42 of your wiki. For full backup, see our online help at:
48 $this->
addOption(
'full',
'Dump all revisions of every page' );
49 $this->
addOption(
'current',
'Dump only the latest revision of every page.' );
50 $this->
addOption(
'logs',
'Dump all log events' );
51 $this->
addOption(
'stable',
'Dump stable versions of pages' );
52 $this->
addOption(
'revrange',
'Dump range of revisions specified by revstart and ' .
53 'revend parameters' );
54 $this->
addOption(
'orderrevs',
'Dump revisions in ascending revision order ' .
55 '(implies dump of a range of pages)' );
57 'Dump only pages included in the file',
false,
true );
59 $this->
addOption(
'start',
'Start from page_id or log_id',
false,
true );
60 $this->
addOption(
'end',
'Stop before page_id or log_id n (exclusive)',
false,
true );
61 $this->
addOption(
'revstart',
'Start from rev_id',
false,
true );
62 $this->
addOption(
'revend',
'Stop before rev_id n (exclusive)',
false,
true );
63 $this->
addOption(
'skip-header',
'Don\'t output the <mediawiki> header' );
64 $this->
addOption(
'skip-footer',
'Don\'t output the </mediawiki> footer' );
65 $this->
addOption(
'stub',
'Don\'t perform old_text lookups; for 2-pass dump' );
66 $this->
addOption(
'uploads',
'Include upload records without files' );
67 $this->
addOption(
'include-files',
'Include files within the XML stream' );
68 $this->
addOption(
'namespaces',
'Limit to this comma-separated list of namespace numbers' );
83 } elseif ( $this->
hasOption(
'current' ) ) {
85 } elseif ( $this->
hasOption(
'stable' ) ) {
89 } elseif ( $this->
hasOption(
'revrange' ) ) {
92 $this->
fatalError(
'No valid action specified.' );
97 parent::processOptions();
100 $this->reporting = !$this->
hasOption(
'quiet' );
103 $filename = $this->
getOption(
'pagelist' );
104 $pages = file( $filename );
106 $this->
fatalError(
"Unable to open file {$filename}\n" );
109 $this->pages = array_filter(
$pages,
static function ( $x ) {
115 $this->startId = intval( $this->
getOption(
'start' ) );
119 $this->endId = intval( $this->
getOption(
'end' ) );
123 $this->revStartId = intval( $this->
getOption(
'revstart' ) );
127 $this->revEndId = intval( $this->
getOption(
'revend' ) );
130 $this->skipHeader = $this->
hasOption(
'skip-header' );
131 $this->skipFooter = $this->
hasOption(
'skip-footer' );
132 $this->dumpUploads = $this->
hasOption(
'uploads' );
133 $this->dumpUploadFileContents = $this->
hasOption(
'include-files' );
134 $this->orderRevs = $this->
hasOption(
'orderrevs' );
135 if ( $this->
hasOption(
'namespaces' ) ) {
136 $this->limitNamespaces = explode(
',', $this->
getOption(
'namespaces' ) );
138 $this->limitNamespaces =
null;
144 require_once RUN_MAINTENANCE_IF_MAIN;
dump( $history, $text=WikiExporter::TEXT)
string[] null $pages
null means all pages
execute()
Do the actual work.
processOptions()
Processes arguments and sets $this->$sink accordingly.
output( $out, $channel=null)
Throw some output to the user.
hasOption( $name)
Checks to see if a particular option was set.
addDescription( $text)
Set the description text.
loadWithArgv( $argv)
Load params and arguments from a given array of command-line arguments.
addOption( $name, $description, $required=false, $withArg=false, $shortName=false, $multiOccurrence=false)
Add a parameter to the script.
getOption( $name, $default=null)
Get an option, or return the default.
fatalError( $msg, $exitCode=1)
Output a message and terminate the current script.