Главная страница / DataLife Engine / Скрипты и другая информация / Даунгрейд (downgrade) версии DLE на сайте

Даунгрейд (downgrade) версии DLE на сайте

10 июня 2022, Пятница
765
6
Даунгрейд (downgrade) версии DLE на сайте

Сегодня обратились ко мне сделать откат ДЛЕ на версию ниже, потому что один модуль не работает на версии 15.1. Процесс обновления понятен — залить новые файлы и обновить БД.

Сходил на пляж и вечером пришла в голову мысль как можно сделать откат до предыдущей версии, но на практике не проверял, думаю должно сработать. Если кто-то попробует — отпишитесь о результате.

В общем:
  1. Заливаем нужную версию ДЛЕ на сайт.
  2. В engine/data/config.php меняем версию DLE на 1 или две ниже, которую нужно сделать.
  3. Заходим в админку и делаем обновление БД.

ВАЖНО: папка engine\inc\upgrade\ должна содержать только те файлы, которые есть в той версии ДЛЕ, на которую вы хотите сделать откат.
Комментарии:
{login}

Твой комментарий..

  1. DarkLane 8 июля 2022 23:26

    Я только что проверил, что понизил версию 15.2 до версии 13.3. Для этого в cofig для версии id нужно поставить 13.0, а затем перейти к администрированию для понижения версии.

  2. iCooLER 12 июня 2022 03:01

    Способ почти верный: достаточно залить файлы от нужной версии DLE и поменять в engine/data/config.php версию DLE в строчке version_id на ту, которую залили.

    По крайней мере так сработает для отката c 15 версии до 14.3. Судя по запросам которые выполняются в базу при обновлении от 14.3 до 15.1 там только добавление новых столбцов в таблицы, которые после даунгрейда просто перестанут использоваться и будут иметь стандартные значения при добавлении новых записей в них.

    Пункт со сменой версии в конфиге на 1-2 ниже и выполнять обновление — ошибочный: при обновлении выполняются запросы на создание новых таблиц/столбцов или их изменение, и не только. И в обратную сторону это не работает: вылетит ошибка, т.к таблицы и столбцы уже созданы ранее.

    1. iCooLER 12 июня 2022 03:03
      Но мой способ тоже не проверенный, однако я в нем уверен на 99%)
      1. byroot Администраторы 12 июня 2022 09:48

        На днях проверю с 151 до 130 сделать откат чтоб было на практике проверено как лучше это сделать.


        только что поставил чистую 15.1.

        удалил папку engine/inc/upgrade.

        залил поверх 13.0.

        переименовал версию DLE в engine/data/config.php на 1 ниже требуемой, т.е. на 12.1.

        зашёл в админку и выполнил предложение обновить ДЛЕ с 12.1 до 13.0 - в процессе обновления не было никаких ошибок в MySQL запросах. Понятно что какие то ячейки от последней версии останутся, но они не повлияют на работу движка в целом.


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


        UPDATE а после обновления обратно с 13.0 до 15.1 - сообщения "Ошибка: Duplicate column name ", но это ничего страшного, просто нажать "продолжить" и обновление пройдёт успешно.

        1. iCooLER 13 июня 2022 01:31
          Хочется по-умничать, так что отвечу))

          Почему не вылезло ошибок?
          ---
          При обновлении с 12.1 до 13.0 выполняются запросы на создание таблиц(3 штуки), а также изменение параметров столбца(2 штуки). Перед выполнением запроса на создание таблицы выполняется запрос на удаление таблицы, если она есть. А изменение параметров столбца таблицы не выдает ошибок, даже если параметры столбца уже такие как в запросе на изменение. Именно поэтому ошибок и не вылезло. Проверить мои доводы можно в файле engine/inc/upgrade/12.1.php который как раз обновляет базу с 12.1 до 13.0.

          Почему все-таки так делать не стоит?
          ---
          Выше я написал, что при обновлении с 12.1 до 13.0 выполняются запросы на создание таблиц. В DLE 13.0 добавили плагины и как раз таблицы для плагинов создаются при обновлении, а точнее пересоздаются(ибо сначала удаляются, если есть). Поэтому при таком способе установленные плагины будут удалены, т.к таблицы пересоздадутся.
          1. byroot Администраторы 15 июня 2022 08:53
            точно, не подумал я про плагины. в общем твой вариант будет лучше т.е. не нужно делать ничего в БД, просто заменить файлы движка на нужную версию и должно работать будет всё.

            PS вчера уже вышла версия DLE 15.2.
Модули для создания киносайта и не только на базе DataLife Engine, и многое другое...
Просто блог Евгения Попова, он же - byroot © 2015-2025 | Карта сайта