Обновление moodle (2.2-3.4) при помощи git

Обновление moodle (2.2-3.4) при помощи git

от Дмитрий Кузьменко -
Количество ответов: 8

Добрый день.

Помогите пожалуйста с обновлением moodle.

На linux сервере установлена версия 2.2. Устанавливалась при помощи git. Нужно обновить до свежайщей стабильной.

Как я понял, за один раз установить не получится?

Читал, что при использовании git обновление делается легко, только не понял, касается ли это такого большого обновления(2.2-3.4).

Заранее благодарен за любую помощь.

В ответ на Дмитрий Кузьменко

Re: Обновление moodle (2.2-3.4) при помощи git

от Alex Djachenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода Изображение пользователя ООО "Открытые Технологии" Изображение пользователя Тестер Moodle Изображение пользователя Эксперт по Moodle

Дмитрий,
это из серии "мне нужно положить плитку в ванной, я слышал про шпатель, говорят, с его помощью плитка кладется легко" улыбаюсь

Качественное (и безопасное для ваших данных) обновление Moodle включает следующие этапы:

  1. Включение режима обслуживание.
  2. Полное резервное копирование, включая дамп базы данных и архив папки moodledata.
  3. Проверка серверного окружение (версии Apache, PHP, MySQL, других библиотек и утилит) и обновление серверного окружения, если требования новой версии отличаются от требований старой.
  4. Замена кода старой версии ПО на новый (если версия слишком старая и прямое обновление невозможно - пункты 2-6 повторяются для каждого шага).
  5. Запуск процедуры конвертации базы данных.
  6. Проверка корректности преобразования контента, истории и настроек.
  7. Выключение режима обслуживания.

Git вам поможет только с пунктом 4 и хоть чем-то облегчает процесс только если у вас были патчи (самостоятельные правки исходного кода) и то, скорее-всего патчи придется проверять и портировать.

В ответ на Alex Djachenko

Re: Обновление moodle (2.2-3.4) при помощи git

от Дмитрий Кузьменко -
Благодарю за развёрнутую инструкцию.
Вопрос был именно про пункт 4.
Прошу прощения если не смог грамотно обозначить свои пожелания. 
Я перевожу сайт в режим обслуживания;
Делаю резервную копию файлов moodle (moodledata не трогаю, она у меня смонтирована отдельно), дамп баз данных;
Серверное окружение совместимо;
Вот тут начинается мой вопрос:
Могу ли я сразу сделать
git branch --track MOODLE_33_STABLE origin/MOODLE_33_STABLE
или мне нужно поднимать версию по шагам?
Пока я решил идти маленькими шажками и сразу же столкнулся с:
error: The following untracked working tree files would be overwritten by checkout:
        mod/book/README.md
        mod/book/backup/moodle1/lib.php
.....
но это уже, похоже, git

В ответ на Дмитрий Кузьменко

Re: Обновление moodle (2.2-3.4) при помощи git

от Alex Djachenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода Изображение пользователя ООО "Открытые Технологии" Изображение пользователя Тестер Moodle Изображение пользователя Эксперт по Moodle

Дмитрий, как я писал вам выше, git не апгрейдит мудл. Он только скачивает исходный код из репозитория. И команда, которую вы написали не апгрейдит мудл. Она никак не поможет Вам обновиться с 2.2 на 3.3 минуя 2.7.

Если Вы ставили Moodle не с помощью git, то git не даст вам никаких преимуществ при обновлении.  О чем Вам утилита и сообщает: локальная ветка не отслеживается и будет полностью перезаписана при чекауте.

А если Вы не вносили в код Moodle никаких правок вручную - то проще скачать новый дистрибутив с сайта, распаковать его и положить на место старого кода.

В ответ на Alex Djachenko

Re: Обновление moodle (2.2-3.4) при помощи git

от Дмитрий Кузьменко -

Устанавливался при помощи git

Ругается только на mod/book. Добавил его в .git/info/exclude - перешёл дальше

Собственно с вопросом разобрался.

Скажите, я здесь новичок, тему нужно удалять/закрывать?

В ответ на Дмитрий Кузьменко

Re: Обновление moodle (2.2-3.4) при помощи git

от Александр Анисимов -
Изображение пользователя Майнтейнер перевода Изображение пользователя Эксперт по Moodle

>> тему нужно удалять/закрывать?


Не нужно.

Да Вы и не сможете этого сделать, это прерогатива преподавателя курса.

В ответ на Дмитрий Кузьменко

Re: Обновление moodle (2.2-3.4) при помощи git

от Vadim Dvorovenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода
Не нужно, но в .exclude тоже ничего добавлять не стоит. Просто модуль book перекочевал из нестандартных модулей в стандартные, отсюда проблема.
Короткий путь (не рассказываю про бэкапы, режим обслуживания и т.п., это уже рассказали), речь только про команды git
1. Удаляете в папке всё кроме config.php и .git. Это избавит от проблем с пустыми папками, так как некоторые модули убираются в новых версиях, а пустые папки от них остаются (git не отслеживает папки, только файлы в них).
2. git fetch (это забирает репозиторий с сервера в папку .git)
3. git checkout --force origin/MOODLE_27_STABE (это забирает из репозитория на диск последнюю версию 2.7)
4. обновляетесь через браузер или cli-скрипт, потом повторяете пункт 1.
5. git checkout --force origin/MOODLE_33_STABE (последняя стабильная сейчас) или git checkout --force origin/master (последняя бета)
6. снова обновляетесь
В ответ на Vadim Dvorovenko

Re: Обновление moodle (2.2-3.4) при помощи git

от Виталий Лавров -
Изображение пользователя Эксперт по Moodle
1. Удаляете в папке всё кроме config.php и .git. Это избавит от проблем с пустыми папками, так как некоторые модули убираются в новых версиях, а пустые папки от них остаются (git не отслеживает папки, только файлы в них).

Ох уж эти сказочники! Гит не отслеживает то, что в него не внесено.

Если все дополнительно установленные плагины были добавлены в гит, то "git checkout" будет делать все правильно.


Совсем недавно апгрейдил 2.7 до 3.5. Оказалось, что все не совсем тривиально, т.к. 2.7 жило на php-5.6 и pgsql-9.2, а 3.5 требует php-7 и pgsql 9.3. Кроме этого 3.5 умеет апгрейдиться только с 3.1 и выше, но то, что сейчас лежит в официальном репозтории в STABLE_31 - неработоспособно.

Рабочим вариантом окаалось 2.7->3.0->3.3->3.5