Manual:updateCollation.php
<translate> MediaWiki version:</translate> |
MediaWiki file: updateCollation.php | |
---|---|
Location: | maintenance/ |
Source code: | master • 1.41.1 • 1.40.3 • 1.39.7 |
Classes: | UpdateCollation |
Details
This script updates category collations.
You need to run this script after $wgCategoryCollation has been changed.
It is also needed to be run after upgrading to 1.17 and later from a version of MediaWiki before 1.17.
Normally it is run as part of update.php
.
If your category collations are messed up (aka things sort incorrectly in categories), you can use the --force
switch to forcibly fix all the category collations.
The run time of the script depends on the number of rows in the categorylinks table, and for extremely large wikis may take over 24 hours.
(A run on the English Wikipedia in September 2016 took around a week: phab:T136150.) The script can process on the order of 10,000 rows per minute (depending on your setup); you can view the estimated number of rows on your wiki before running the real script by using updateCollation.php --dry-run
.
Wikimedia wikis of various sizes have been painlessly switched to different collations over time (phab:T47443), just make sure to estimate how long the script will run before you start it.
Options/Arguments
Option | Description | Required? |
---|---|---|
--force | Run on all rows, even if the collation is supposed to be up-to-date. | <translate> Optional</translate> |
--previous-collation | Set the previous value of $wgCategoryCollation here to speed up this script, especially if your categorylinks table is large. This will only update rows with that collation, though, so it may miss out-of-date rows with a different, even older collation. | <translate> Optional</translate> |
--target-collation | Set this to the new collation type to use instead of $wgCategoryCollation. Usually you should not use this, you should just update $wgCategoryCollation in LocalSettings.php . | <translate> Optional</translate> |
--target-table | Copy rows from categorylinks into the specified table instead of updating them in place. | <translate> Optional</translate> |
--remote | Use Shellbox to calculate the new sort keys remotely. | <translate> Optional</translate> |
--dry-run | Don't actually change the collations, just compile statistics. | <translate> Optional</translate> |
--verbose-stats | Show more statistics. | <translate> Optional</translate> |
Usage
php maintenance/updateCollation.php [ --force| --previous-collation| --target-collation| --target-table| --remote| --dry-run| --verbose-stats ]
Dry run to check updates
$ php maintenance/updateCollation.php --dry-run Selecting next 100 rows... processing...0 rows would be updated so far. Selecting next 100 rows... processing...0 rows would be updated so far.
Updating category collations
$ php maintenance/updateCollation.php Selecting next 100 rows... processing...100 done. Selecting next 100 rows... processing...143 done. 143 rows processed