Как обновить moodle 1.6.3 до 3.8

Как обновить moodle 1.6.3 до 3.8

от Еуые Пвап -
Количество ответов: 18

Добрый день!

Столкнулся с такой задачей, обновить moodle 1.6.3 до 3.8. Ранее ни когда не обновлял moodle.

Как это сделать с таким большим разбегом в версиях с сохранением данных?

В ответ на Еуые Пвап

Re: Как обновить moodle 1.6.3 до 3.8

от Dmitriy Makarov -
до 2.4 вроде придется каждую версию по порядку ставить. с 2.7 точно могу сказать можно сразу любую версию moodle 3.х ставить
В ответ на Dmitriy Makarov

Re: Как обновить moodle 1.6.3 до 3.8

от Еуые Пвап -
попробовал до 1.9.19 ставить, вроде пошло все нормально но на этапе проверки модулей выдало кучу ошибок:
mod/page/db/mysql.php и м.д. что файлов нет. на диске папки есть (mod/page/db/ и пр.) а файлов mysql.php нет.
я как понимаю это установка таблиц БД для модулей? и почему их может не быть? где их взять?
В ответ на Еуые Пвап

Re: Как обновить moodle 1.6.3 до 3.8

от Vadim Dvorovenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода

в принципе, нет ничего, что мешало бы принципиально такому обновлению. Moodle.org через эти версии проходил. Я делал постепенное обновление с 1.9 до 3.1 (ваш путь, конечно длиннее), где-то здесь есть тема, где я подробно описывал процесс

Вам нужно обязательно полный бэкап перед обновлением, а потом по схеме https://moodle.org/mod/forum/discuss.php?d=398202#p1606278

Обновление большое, сначала отработайте весь процесс на копии,  прежде чем обновлять реальную базу.

Есть шаги, которые при обновлении, если сайт большой, могут занимать много часов и даже дней

В тех версиях, где это уже возможно, обновляйтесь только через командную строку, а не через веб-интерфейс.

Делайте полный бэкап после каждого успешного шага.

На каждом шаге о конкретных проблемах пишите в эту тему, с каждой нужно разбираться отдельно.

upgrade_log можете попробовать удалить, чтобы она заново создалась, в ней ничего критичного нет. Но сама эта проблема говорит о том, что уже были какие-то неправильные попытки, поэтом лучше снова начать с бэкапа.

В ответ на Vadim Dvorovenko

Re: Как обновить moodle 1.6.3 до 3.8

от Еуые Пвап -
Спасибо!
Таблиц просил он много удалить - все удалил что просило обновление.
На данном этапе такая ошибка:
!!! Error writing to database !!!
!! Duplicate entry '1-3' for key 'mdl_rolealloswit_rolall_uix'
INSERT INTO mdl_role_allow_switch (roleid, allowswitch)
SELECT roleid, allowassign FROM mdl_role_allow_assign
[array (
)] !!
В ответ на Vadim Dvorovenko

Re: Как обновить moodle 1.6.3 до 3.8

от Еуые Пвап -
Следующая ошибка:

Default exception handler: Unknown DDL library error Debug: table probably already renamed
* line 544 of /lib/ddl/database_manager.php: ddl_exception thrown
* line 1480 of /lib/db/upgrade.php: call to database_manager->rename_table()
* line 1394 of /lib/upgradelib.php: call to xmldb_main_upgrade()
* line 150 of /admin/cli/upgrade.php: call to upgrade_core()

!!! Unknown DDL library error !!!
!! table probably already renamed !!
!! Stack trace: * line 544 of /lib/ddl/database_manager.php: ddl_exception thrown
* line 1480 of /lib/db/upgrade.php: call to database_manager->rename_table()
* line 1394 of /lib/upgradelib.php: call to xmldb_main_upgrade()
* line 150 of /admin/cli/upgrade.php: call to upgrade_core()
В ответ на Dmitriy Makarov

Re: Как обновить moodle 1.6.3 до 3.8

от Виталий Лавров -
Изображение пользователя Эксперт по Moodle
> с 2.7 точно могу сказать можно сразу любую версию moodle 3.х ставить
Не на любую 3.x. Сначала на 3.3, а потом уже на любую. В 3.4 серьёзно изменились минимальные требования к версии php, а до 3.3 свежие версии php не поддерживаются.

5, а лучше 7 раз подумайте прежде чем делать такой апгрейд. Возможно, что перенос курсов и пользователей даст более правильный результат.
В ответ на Виталий Лавров

Re: Как обновить moodle 1.6.3 до 3.8

от Еуые Пвап -
Я бы с радостью чистую 3.8 поставил а потом перенес данные но как все это перенести с 1.6.3 на 3.8 версию?

Если такой путь проще то я только рад был бы.
В ответ на Еуые Пвап

Re: Как обновить moodle 1.6.3 до 3.8

от Виталий Лавров -
Изображение пользователя Эксперт по Moodle
Есть существенные моменты, которые делают апгрейд невозможными:
1. использование плагинов в moodle 1.6, которые отсутствуют в версиях 3.х. (Тема оформления - это тоже плагин).
2. Модификация moodle-1.6. Если какой-то функционал был сделан самостоятельно, то это может стать приговором

Если рассматривать процесс переноса, то есть проблема переноса категорий курсов, точнее полное отсутствие автоматизированных средств для переноса категорий курсов.
Перенести пользователей без сохранения паролей легко. Если бы вы обновлялись с 1.9.10+, то и пароли можно было бы сохранить.
Вроде бы были автоматизированные средства для восстановления из бекапов курсов.

Сколько курсов в старой системе?
Бекапить курсы без данных пользователей в старой системе и восстанавливать в новой системе не пробовали?
В ответ на Виталий Лавров

Re: Как обновить moodle 1.6.3 до 3.8

от Dmitriy Makarov -
ну я свои 2 системы с 2.7 до 3.2 без проблем вроде обновил. потом шла 3.4 и 3.7
возможно какие хвосты и остались. пока это замечено не было. тестовый мудл буквально месяц назад обновлялся напрямую с 2.5 до 3.8 тоже без проблем. что качается php, то тут так или иначе сам мудл при обновлении начнет шуметь, так что это не такая проблема. в любом случае всегда должен быть бекап улыбаюсь
В ответ на Еуые Пвап

Re: Как обновить moodle 1.6.3 до 3.8

от Alexandre Scherbyna -

В документации написано, что, обновляя Moodle с версии 1.х до последней 3.8 следует проходить через такие промежуточные версии: 1.x -> 1.9.19+ -> 2.2.11 -> 2.7.20 -> 3.2.9 -> 3.8.

В ответ на Alexandre Scherbyna

Re: Как обновить moodle 1.6.3 до 3.8

от Еуые Пвап -
Спасибо!
Сейчас обновляю с 1.9.19 до 2.2.11 и в на шаге обновления появилась ошибка (скрин прикрепил). Не понял, мне нужно удалить эти таблицы из базы?
Приложение 2020-03-13_14-36-43.png
В ответ на Еуые Пвап

Re: Как обновить moodle 1.6.3 до 3.8

от Vadim Tabunshchik -
Изображение пользователя Developers
Такой ошибки при правильном обновлении быть не должно. Да и процесс обновления с 1.9.19 до 2.2.11 в этом случае нужно начинать заново, восстановив базу данных 1.9.19 и файлы Мудл этой же версии.
В ответ на Vadim Tabunshchik

Re: Как обновить moodle 1.6.3 до 3.8

от Еуые Пвап -
В общем решил начать обновление с нуля т.е. все снес и опять с исходной, с 1.6.3.
Начал ставить moodle-latest-19 (

1.9.19+ (Build: 20130513) (2007101592.05)

)
Все шло хорошо, пока не дошло до таблиц бд, появилась такая ошибка:

Приложение 2020-03-16_17-20-28.png
В ответ на Еуые Пвап

Re: Как обновить moodle 1.6.3 до 3.8

от Еуые Пвап -
как я понимаю, проблема в том что пытается система создать таблицу где одна из ячеек имеет имя зарезервированного в MySQL имени: recursive
и что делать то?
Приложение 2020-03-16_17-39-12.png
В ответ на Еуые Пвап

Re: Как обновить moodle 1.6.3 до 3.8

от Еуые Пвап -
в общем решил так: создал эту таблицу в phpmyadmin с переименованной recursive в recursive2, после создания таблицы переименовал без проблем с recursive2 на recursive обратно.
В ответ на Еуые Пвап

Re: Как обновить moodle 1.6.3 до 3.8

от Vadim Tabunshchik -
Изображение пользователя Developers

>> и что делать то?

Использовать для каждой версии Мудл соответствующие версии софта - программного обеспечения веб-сервера.

Если вы устанавливали 1.6.3 из пакета Moodle packages for Windows, то почему ошибку выдаёт сервер MariaDB, откуда он взялся?

При переходе на 1.9.19 у вас должен использоваться XAMPP версии 1.7.1 с MySQL 5.1.33.

Если вы используете не XAMPP, то вы версии ПО сервера должны сами менять (обновлять с повышением версии) при повышении версии Мудл, согласно требованиям каждой версии: для 1.6 (1.9.19) нужно - PHP 4.3.0, MySQL 4.1.16, а для 2.2.11 уже требуется PHP 5.3.2, MySQL 5.0.25

Поддержка MariaDB началась только с 2.6, имхо.

В ответ на Vadim Tabunshchik

Re: Как обновить moodle 1.6.3 до 3.8

от Vadim Dvorovenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода
Вроде бы ключевое слово RECURSIVE появилось только в mysql 8, поэтому используйте mysql 5.1 или 5.7, и всё должно быть нормально. Для 1.6 - 1.9 попробуйте php 5.0 (только если не получится, пробуйте 4.3), потом переключайтесь на 5.3, потом 5.6, потом 7.1.
У меня moodle 1.8 - 1.9 когда-то стоял на ubutnu 8.04, а там внутри php 5.2.4 и mysql 5.0.