Обновление Moodle 1.9 до версии 2.x: порядок и подводные камни
Как обновить Moodle 1.9 через промежуточную версию 2.2: резервные копии, удаление неподдерживаемых модулей, обновление через браузер и через консоль.
Актуальность. Moodle 1.9 и 2.x давно не поддерживаются. Принцип остался прежним: обновление идёт ступенями через обязательные промежуточные версии, а надёжнее всего запускать его из консоли. Список промежуточных версий смотрите в документации Moodle для своей исходной версии.
1. Резервные копии
Обновление меняет структуру базы и может идти часами, поэтому без копий начинать нельзя.
mysqldump -u root -p moodle_db > /home/backup/moodle_db.sql
tar -czf /home/backup/moodle_files.tar.gz /var/www/moodle /var/moodledata
2. Только через версию 2.2
С 1.9 можно обновиться только на 2.2. Удалите из каталога сайта все файлы, кроме config.php, распакуйте туда дистрибутив 2.2 и откройте сайт в браузере.
- Мастер проверит окружение — все пункты должны быть зелёными.
- Затем покажет список модулей. Если какой-то модуль не поддерживается новой версией, удалите его заранее (см. ниже).
- Само обновление может идти несколько часов.
После завершения проверьте курсы, пользователей и особенно файлы: в 2.x файловое хранилище переделано, и старые файлы иногда не отображаются, хотя лежат на сервере. Темы оформления от 1.9 в 2.x не работают — уникальную тему готовьте заранее на чистой установке.
3. Удаление неподдерживаемых модулей
Найдите в базе таблицу mdl_block (блоки) или mdl_modules (модули деятельности) и удалите запись модуля, который не поддерживается. Делайте это только при наличии резервной копии.
4. Надёжный способ: обновление из консоли
Если обновление через браузер обрывается, после замены файлов запустите его из командной строки от имени пользователя веб-сервера:
cd /var/www/moodle
sudo -u www-data /usr/bin/php admin/cli/upgrade.php
Скрипт задаст вопрос — ответьте yes. Прогресс в процентах не показывается, зато нет ограничений по времени выполнения и обрыва соединения.
5. Дальнейшие версии
С 2.2 обновление на следующие версии идёт так же: новые файлы с сохранённым config.php, затем обновление через браузер или консоль.