Как обновить mediawiki
Подробная инструкция на английском приведена на http://www.mediawiki.org/wiki/Manual:Upgrading
Для обновления вики семейства (фермы) см отдельную статью.
Вкратце нужно:
- Сделать резервные копии БД и файлов
- Распаковать и заменить файлы
- Обновить структуру БД. Можно через веб-интерфейс по адресу http://site.name/w/mw-config/
Для того, чтобы для посетителей сайта обновление прошло максимально быстро:
- файлы новой версии распакуем во временный каталог рядом с основным, например w18
- скопирует туда настрочные файлы (по умолчанию он один: LocalSettings.php)
- скопируем каталоги /images и /extensions
- добавим свои изменения (если вносили) в файл languages/Names.php - межязыковые ссылки.
- переведём сайт в режим "только для чтения" указав в LocalSettings.php переменную (сообщение можно сделать любым):
$wgReadOnly = '<div style="color: red;"><big>Редактирование не будет сохранено! Upgrading to MediaWiki 1.18.0</big></div>';
- обновим структуру БД, запустив скрипт из каталога maintenance:
php5 ./update.php --conf /Путь_к_сайту/LocalSettings.php
или используя инсталлятор через веб-интерфейс. В случае вики фермы, структуру БД нужно менять для каждой вики, каждый раз задавая нужный префикс таблиц. Так как браузер кэширует информацию инсталлятора, то для обновления каждой следующей БД нужно будет чистить кэш, либо менять имя каталога с дистрибутивом (например на w18.0 и т.д.). В Firefox очистить недавнюю историю (и кэш) можно Ctrl+Shift+Del. - переименовываем каталог w в w.old, а w18 в w. Если w был ссылкой, то удаляем её и далаем новую:
rm ./w ln -s ./w18 ./w
Сбой в кодировке
Если после обновления со страниц исчез текст, а в списках статей остались только те, что содержат не кириллические символы, значит произошёл сбой в кодировке. В этом случае большинство таблиц нуждаются в перекодировке.
Не нуждаются в перекодировке следующие таблицы:
wiki_hitcounter wiki_msg_resource wiki_msg_resource_links wiki_searchindex
Команды для обновления всех необходимых таблиц:
ALTER TABLE wiki_archive CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_category CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_categorylinks CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_change_tag CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_external_user CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_externallinks CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_filearchive CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_image CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_imagelinks CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_interwiki CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_ipblocks CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_iwlinks CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_job CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_l10n_cache CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_langlinks CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_log_search CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_logging CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_module_deps CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_objectcache CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_oldimage CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_page CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_page_props CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_page_restrictions CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_pagelinks CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_protected_titles CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_querycache CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_querycache_info CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_querycachetwo CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_recentchanges CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_redirect CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_revision CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_site_stats CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_tag_summary CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_templatelinks CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_text CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_transcache CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_updatelog CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_uploadstash CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_user CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_user_former_groups CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_user_groups CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_user_newtalk CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_user_properties CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_valid_tag CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_watchlist CONVERT TO CHARACTER SET binary;
Для справки. Все таблицы MediaWiki 1.27.x: wiki_archive wiki_category wiki_categorylinks wiki_change_tag wiki_external_user wiki_externallinks wiki_filearchive wiki_hitcounter wiki_image wiki_imagelinks wiki_interwiki wiki_ipblocks wiki_iwlinks wiki_job wiki_l10n_cache wiki_langlinks wiki_log_search wiki_logging wiki_module_deps wiki_msg_resource wiki_msg_resource_links wiki_objectcache wiki_oldimage wiki_page wiki_page_props wiki_page_restrictions wiki_pagelinks wiki_protected_titles wiki_querycache wiki_querycache_info wiki_querycachetwo wiki_recentchanges wiki_redirect wiki_revision wiki_searchindex wiki_site_stats wiki_tag_summary wiki_templatelinks wiki_text wiki_transcache wiki_updatelog wiki_uploadstash wiki_user wiki_user_former_groups wiki_user_groups wiki_user_newtalk wiki_user_properties wiki_valid_tag wiki_watchlist
Дополнительные ссылки на обсуждение проблемы на разных ресурсах: