Manual:Upgrading to 1.6

After a significant amount of time spent swearing, sweating, coding and bickering, MediaWiki 1.6 has entered the stable release tree. To make sure that time is spent in optimal fashion, exploring the new features, this useful guide to performing the upgrade will walk you through the process. It takes less than 10 minutes on average.

Note: This guide was written with the basic assumption that if you're looking to move to 1.6, you've already got a wiki running the 1.5 branch of the software. If not, it's likely you'll find the copious amounts of additional material useful.

Overview
First, read the UPGRADE text file included in MediaWiki 1.6.

As with all MediaWiki upgrades, the basic premise is the same:


 * 1) Check the requirements
 * 2) Read the release notes
 * 3) Back up existing files and the database
 * 4) Unpack the new files
 * 5) Run the update script to check the database
 * 6) Test the update

Check requirements
Before upgrading to MediaWiki 1.6, check that


 * You are running PHP 4.3.2 or later
 * You are running MySQL 4.0 or later

Read the release notes
Within the distribution tarball, or within the files checked out/exported from SVN, there are a number of files with capitalised filenames, one of which contains the  . Now's the time to open it up and find out what's been changed in 1.6.

Back up existing files and the database
It can't be said enough. Bugs and oversights can still happen; things can still go wrong. The maintenance script could time out and leave the database in some weird, mutated state. You could spill Sprite on something electrical at the critical moment. Don't be an idiot; before attempting the upgrade, make a backup of both the database, and the files.

Database
Make a full backup of the wiki database before attempting to run update scripts on it. This serves as a basic precaution should the schema updates fail, leaving records in a broken or corrupt state. There are a number of utilities to do this, such as MySQL dump, which is supplied with the software.

Settings
Make a copy of your LocalSettings.php file, which contains both the basic configuration details, and also any customisations you may have made to change the behaviour of MediaWiki.

Uploaded files
If uploads are enabled in the wiki, then you will also need to back up the upload directory. By default, this is the images directory, although the path to this may have been changed in LocalSettings.php.

Extensions and custom skins
Take copies of the extensions directory, and any files or directories containing skin customisations.

Unpack the new files to bring the database up to the minute
If using a tarball package downloaded from SourceForge, decompress it; if using Subversion, export the files into a clean location. Replace all the existing files from MediaWiki 1.5 with the new ones from 1.6, preserving the directory structure. The core code is now up to date.

Run the update script
Note: Make sure there's an AdminSettings.php file in the wiki root, and it's got up to date information in it. The user needs full permissions on the database.

The preferred method of performing the update is using the command-line maintenance script, however, it is also possible to re-run the web-based installer.

Shell
From the command line, or an SSH shell or similar, change to the maintenance directory and execute the update script:

$ php update.php

MediaWiki will inspect the existing schema and update it to work with the new code, adding tables and columns as needed. Once this is complete, you are advised to run the refreshLinks.php script to update the link tables.

Alternative: phpShell
If shell access is not available, look at options such as phpShell, which emulates a command prompt using PHP functions. This might not work on some locked-down hosting setups.

When using such a solution, it is often desirable to skip the countdown period at the start of the script. Pass the  option to the update script to do so:

$ php update.php --quick

Re-run the installer
An alternative to running the update script from the shell is to re-run the web installer. Rename LocalSettings.php to something like LocalSettings.old.php (preserve the extension to prevent execution/theft of connection information), make the "config"-directory writable (755 or 777) and browse to the wiki to launch the installer script.

Fill in the fields and click install, and the script will detect and update the existing schema as needed, and generate a new LocalSettings.php; this can be discarded afterwards. Rename the old LocalSettings.php once more, and the wiki should be returned to a working, upgraded state.

Test the update
Once the script has completed, browse to the wiki and check basics such as viewing and editing pages to ensure things still work as expected. Visit Special:Version and check that the version shown is correct.