* Bring the schema changes section up to date in release notes
[lhc/web/wiklou.git] / UPGRADE
1 This file provides an overview of the MediaWiki upgrade process. For help with
2 specific problems, check
3
4 * the documentation at http://meta.wikimedia.org
5 * the documentation at http://www.mediawiki.org
6 * the mediawiki-l mailing list archive at
7 http://mail.wikipedia.org/pipermail/mediawiki-l
8 * the bug tracker at http://bugzilla.wikimedia.org
9
10 for information and workarounds to common issues.
11
12 == Overview ==
13
14 Documentation on upgrading to 1.7 can also be found at
15 http://www.mediawiki.org/wiki/Manual:Upgrading_to_1.7.
16
17 === Consult the release notes ===
18
19 Before doing anything, stop and consult the release notes supplied with the new
20 version of the software. This detail bug fixes, new features and functionality,
21 and any particular points that may need to be noted during the upgrade
22 procedure.
23
24 === Backup first ===
25
26 It is imperative that, prior to attempting an upgrade of the database schema,
27 you take a complete backup of your wiki database and files and verify it. While
28 the upgrade scripts are somewhat robust, there is no guarantee that things will
29 not fail, leaving the database in an inconsistent state.
30
31 Refer to the MySQL documentation for information on backing up a database. For
32 information on making copies of files, consult the documentation for your
33 operating system.
34
35 === Perform the file upgrade ===
36
37 Having downloaded the desired new version of the software, either as a package
38 from SourceForge, or via an export from Subversion, decompress the files as
39 needed, and replace the existing MediaWiki files with the new.
40
41 You should preserve:
42
43 * The LocalSettings.php file
44 * The AdminSettings.php file, where it exists
45 * The extensions directory
46 * The images directory
47
48 If using an alternative uploads directory, preserve this; and if using custom
49 skins, preserve these too. The core code is now updated.
50
51 === Perform the database upgrade ===
52
53 You will need an AdminSettings.php file set up in the correct format; see
54 AdminSettings.sample in the wiki root for more information and examples.
55
56 From the command line, browse to the maintenance directory and run the
57 update.php script to check and update the schema. This will insert missing
58 tables, update existing tables, and move data around as needed. In most cases,
59 this is successful and nothing further needs to be done.
60
61 === Check configuration settings ===
62
63 The names of configuration variables, and their default values and purposes,
64 can change between release branches, e.g. $wgDisableUploads in 1.4 is replaced
65 with $wgEnableUploads in later versions. When upgrading, consult the release
66 notes to check for configuration changes which would alter the expected
67 behaviour of MediaWiki.
68
69 === Test ===
70
71 It makes sense to test your wiki immediately following any kind of maintenance
72 procedure, and especially after upgrading; check that page views and edits work
73 normally and that special pages continue to function, etc. and correct errors
74 and quirks which reveal themselves.
75
76 == Upgrading from 1.6 wikis ==
77
78 $wgLocalTZoffset was in hours, it is now using minutes.
79 Link autonumbering got fixed (#5918) for protocols other than http.
80 - 'irc://irc.server.tld/' render as a link with a chat icon
81 - '[irc://irc.server.tld]' render as an autonumbered link: [1]
82
83 == Upgrading from pre-1.5 wikis ==
84
85 Major changes have been made to the schema from 1.4.x. The updater
86 has not been fully tested for all conditions, and might well break.
87
88 On a large site, the schema update might take a long time. It might
89 explode, or leave your database half-done or otherwise badly hurting.
90
91 Among other changes, note that Latin-1 encoding (ISO-8859-1) is
92 no longer supported. Latin-1 wikis will need to be upgraded to
93 UTF-8; an experimental command-line upgrade helper script,
94 'upgrade1_5.php', can do this -- run it prior to 'update.php' or
95 the web upgrader.
96
97 If you absolutely cannot make the UTF-8 upgrade work, you can try
98 doing it by hand: dump your old database, convert the dump file
99 using iconv as described here:
100 http://portal.suse.com/sdb/en/2004/05/jbartsh_utf-8.html
101 and then reimport it. You can also convert filenames using convmv,
102 but note that the old directory hashes will no longer be valid,
103 so you will also have to move them to new destinations.
104
105 Message changes:
106 * A number of additional UI messages have been chagned from HTML to
107 wikitext, and will need to be manually fixed if customized.
108
109 === Configuration changes from 1.4.x: ===
110
111 $wgDisableUploads has been replaced with $wgEnableUploads.
112
113 $wgWhitelistAccount has been replaced by the 'createaccount' permission
114 key in $wgGroupPermissions. To emulate the old effect of setting:
115 $wgWhitelistAccount['user'] = 0;
116 set:
117 $wgGroupPermissions['*']['createaccount'] = false;
118
119 $wgWhitelistEdit has been replaced by the 'edit' permission key.
120 To emulate the old effect of setting:
121 $wgWhitelistEdit = true;
122 set:
123 $wgGroupPermissions['*']['edit'] = false;
124
125 If $wgWhitelistRead is set, you must also disable the 'read' permission
126 for it to take affect on anonymous users:
127 $wgWhitelistRead = array( "Main Page", "Special:Userlogin" );
128 $wgGroupPermissions['*']['read'] = false;
129
130 Note that you can disable/enable several other permissions by modifying
131 this configuration array in your LocalSettings.php; see DefaultSettings.php
132 for the complete default permission set.
133
134 If using Memcached, you must enabled it differently now:
135 $wgUseMemCached = true;
136 should be replaced with:
137 $wgMainCacheType = CACHE_MEMCACHED;
138
139
140 === Web installer ===
141
142 You can use the web-based installer wizard if you first remove the
143 LocalSettings.php (and AdminSettings.php, if any) files; be sure to
144 give the installer the same information as you did on the original
145 install (language/encoding, database name, password, etc). This will
146 also generate a fresh LocalSettings.php, which you may need to customize.
147
148 You may change some settings during the install, but be very careful!
149 Changing the encoding in particular will generally leave you with a
150 lot of corrupt pages, particularly if your wiki is not in English.
151
152 === Command-line upgrade ===
153
154 Additionally, as of 1.4.0 you can run an in-place upgrade script from
155 the command line, keeping your existing LocalSettings.php. This requires
156 that you create an AdminSettings.php giving an appropriate database user
157 and password with privileges to modify the database structure.
158
159 Once the new files are in place, go into the maintenance subdirectory and
160 run the script:
161
162 php update.php
163
164 See caveats below on upgrading from 1.3.x or earlier.
165
166
167 == Backups! ==
168
169 To upgrade an existing MediaWiki installation, first BACK UP YOUR WIKI!
170 If something goes wrong, you want to be able to start again.
171
172 Your image files, configuration, etc can simply be copied or archived as
173 you would any other files. (Make sure that the contents of your
174 LocalSettings.php are not accidentally made public, as this contains
175 a database password.)
176
177 To back up the database, use the tools provided by your service provider
178 (if applicable) or the standard mysqldump program.
179
180 For general help on mysqldump:
181 http://dev.mysql.com/doc/mysql/en/mysqldump.html
182
183 WARNING: If using MySQL 4.1.x, mysqldump's charset conversion may in
184 some cases damage data in your wiki. If necessary, set the charset
185 option to 'latin1' to avoid the conversion. Fore more info see:
186 http://mail.wikipedia.org/pipermail/wikitech-l/2004-November/026359.html
187
188
189 == Caveats ==
190
191
192 === Upgrading from 1.4.2 or earlier ===
193
194 1.4.3 has added new fields to the sitestats table. These fields are
195 optional and help to speed Special:Statistics on large sites. If you
196 choose not to run the database upgrades, everything will continue to
197 work in 1.4.3.
198
199 You can apply the update by running maintenance/update.php, or
200 manually run the SQL commands from this file:
201 maintenance/archives/patch-ss_total_articles.sql
202
203
204 === Upgrading from 1.4rc1 or earlier betas ===
205
206 The logging table has been altered from 1.4beta4 to 1.4beta5
207 and again in 1.4.0 final. Copy in the new files and use the web
208 installer to upgrade, or the command-line maintenance/update.php.
209
210 If you cannot use the automated installers/updaters, you may
211 update the table by manually running the SQL commands in these
212 files:
213 maintenance/archives/patch-log_params.sql
214 maintenance/archives/patch-logging-title.sql
215
216
217 === Upgrading from 1.3.x ===
218
219 This should generally go smoothly.
220
221 If you keep your LocalSettings.php, you may need to change the style paths
222 to match the newly rearranged skin modules. Change these lines:
223 $wgStylePath = "$wgScriptPath/stylesheets";
224 $wgStyleDirectory = "$IP/stylesheets";
225 $wgLogo = "$wgStylePath/images/wiki.png";
226
227 to this:
228 $wgStylePath = "$wgScriptPath/skins";
229 $wgStyleDirectory = "$IP/skins";
230 $wgLogo = "$wgStylePath/common/images/wiki.png";
231
232 As well as new messages, the processing of some messages has changed.
233 If you have customized them, please compare the new format using
234 Special:Allmessages or the relevant LanguageXX.php files:
235 copyrightwarning
236 dberrortext
237 editingcomment (was named commentedit)
238 editingsection (was named sectionedit)
239 numauthors
240 numedits
241 numtalkauthors
242 numtalkedits
243 numwatchers
244 protectedarticle
245 searchresulttext
246 showhideminor
247 unprotectedarticle
248
249 Note that the 1.3 beta releases included a potential vulnerability if PHP
250 is configured with register_globals on and the includes directory is
251 served to the web. For general safety, turn register_globals *off* if you
252 don't _really_ need it for another package.
253
254 If your hosting provider turns it on and you can't turn it off yourself,
255 send them a kind note explaining that it can expose their servers and their
256 customers to attacks.
257
258
259 === Upgrading from 1.2.x ===
260
261 If you've been using the MediaWiki: namespace for custom page templates,
262 note that things are a little different. The Template: namespace has been
263 added which is more powerful -- templates can include parameters for
264 instance.
265
266 If you were using custom MediaWiki: entries for text inclusions, they
267 will *not* automatically be moved to Template: entries at upgrade time.
268 Be sure to go through and check that everything is working properly;
269 you can move them manually or you can try using moveCustomMessages.php
270 in maintenance/archives to do it automatically, but this might break things.
271
272 Also, be sure to pick the correct character encoding -- some languages were
273 only available in Latin-1 on 1.2.x and are now available for Unicode as well.
274 If you want to upgrade an existing wiki from Latin-1 to Unicode you'll have
275 to dump the database to SQL, run it through iconv or another conversion tool,
276 and restore it. Sorry.
277
278
279 === Upgrading from 1.1.x or earlier ===
280
281 This is less thoroughly tested, but should work.
282
283 You need to specify the *admin* database username and password to the
284 installer in order for it to successfully upgrade the database structure.
285 You may wish to manually change the GRANTs later.
286
287 If you have a very old database (earlier than organized MediaWiki releases
288 in late August 2003) you may need to manually run some of the update SQL
289 scripts in maintenance/archives before the installer is able to pick up
290 with remaining updates.
291
292
293 === Upgrading from UseModWiki or old "phase 2" Wikipedia code ===
294
295 There is a semi-maintained UseModWiki to MediaWiki conversion script at
296 maintenance/importUseModWiki.php; it may require tweaking and customization
297 to work for you.
298
299 Install a new MediaWiki first, then use the conversion script which will
300 output SQL statements; direct these to a file and then run that into your
301 database.
302
303 You will have to rebuild the links tables etc after importing.