Jump to content

Extension:DataDump

From mediawiki.org
MediaWiki extensions manual
DataDump
Release status: stable
Implementation Database , Special page
Description Provides the Special page to generate/delete/download dumps
Author(s) Paladox, Universal Omega
Maintainer(s) Miraheze system administrators
Latest version continuous updates
MediaWiki >= 1.36.0
PHP 7.4+
Database changes Yes
Composer miraheze/data-dump
Tables data_dump
License GNU General Public License 3.0 or later
Download
  • $wgDataDumpDisableGenerate
  • $wgDataDumpInfo
  • $wgDataDumpDirectory
  • $wgDataDumpFileBackend
  • $wgDataDumpLimits
  • $wgDataDumpDownloadUrl
  • $wgDataDump
  • generate-dump
  • delete-dump
  • view-dump

DataDump allows users to request and generate database dumps. Other types of dumps, such as image dumps, can be configured in the extension. This allows for easy dumping without the need for system administrator intervention.

For reporting an issue or a bug, please use Miraheze Phabricator. See here for the workboard.

Installation

  • Download and place the file(s) in a directory called DataDump in your extensions/ folder.
  • Add the following code at the bottom of your LocalSettings.php file:
    wfLoadExtension( 'DataDump' );
    
  • Run the update script which will automatically create the necessary database tables that this extension needs.
  • Configure as required.
  • Yes Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.

Configuration

parameter default comment
$wgDataDump [] This config defines how dumps are generated and which types of dumps there are.
$wgDataDumpDirectory false This config defines the directory where to store the dumps.
$wgDataDumpDisableGenerate false This config determines whether DataDump should be disabled or not.
$wgDataDumpFileBackend false This config defines backend to use ($wgFileBackends)
$wgDataDumpInfo "" This config defines the information displayed atop Special:DataDump.
$wgDataDumpLimits ["memory": 0, "filesize": 0, "time": 0, "walltime": 0] This config defines resources allocated to running scripts.

Permissions

DataDump provides three permissions. These allow you some granularity when it comes to configuring DataDump.

You are not restricted to only using these permissions to restrict who can download, view, or delete dumps. You can also use other permissions available on the wiki.

parameter comment
generate-dump Allows users to generate database dumps
view-dump Allows users to view dumps
delete-dump Allows users to delete dumps

Example

This is an example of how to set up the configuration. You can tailor it to your specific needs:

$wgDataDumpDirectory = "/var/backups/${wgDBname}/";

$wgDataDump = [
    'xml' => [
        'file_ending' => '.xml.gz',
        'generate' => [
            'type' => 'mwscript',
            'script' => "$IP/maintenance/dumpBackup.php",
            'options' => [
                '--full',
                '--output',
                "gzip:${wgDataDumpDirectory}" . '${filename}',
            ],
        ],
        'limit' => 1,
        'permissions' => [
            'view' => 'view-dump',
            'generate' => 'generate-dump',
            'delete' => 'delete-dump',
        ],
    ],
    'zip' => [
        'file_ending' => '.zip',
        'generate' => [
            'type' => 'script',
            'script' => '/usr/bin/zip',
            'options' => [
                '-r',
                "${wgDataDumpDirectory}" . '${filename}',
                "$IP/images/"
            ],
        ],
        'limit' => 1,
        'permissions' => [
            'view' => 'view-dump',
            'generate' => 'generate-dump',
            'delete' => 'delete-dump',
        ],
    ],
];

Note that ${filename} is replaced internally in the extension so make sure that it is always in a single string not in a double string.

The limit parameter specifies how many dumps can be generated for that wiki.

Troubleshooting

If you're experiencing issues with failed data dumps, you can look at your Job Queue 's log file. You can search for DataDumpGenerateJob to find an area where the Job Queue is running your dump.

PHP binary location

If your log file contains something similar: [exec] Possibly missing executable file: '/usr/bin/php', then you might need to set $wgPhpCli to a correct value for your environment. You can use whereis php to double check.

Zip Tooling

If your log file contains something similar to: [exec] Possibly missing executable file: '/usr/bin/zip' then you need to ensure the appropriate zip tooling for your job is installed on your Host machine.

See also