Как обновить Drupal 7 до Drupal 8

Как обновить Drupal 7 до Drupal 8

В этом уроке давайте с вами разберемся, как обновить Drupal 7 до Drupal 8 (также данный процесс обновления еще называют миграцией). Посмотрим, какие решения нам предлагают разработчики, и уже в конце с вами сделаем выводы относительно переезда сайта.

Для чего вообще нужно это обновление? Обновление вашего текущего сайта позволит получить доступ к новым функциям Drupal 8, более высокую производительность, а также закроет бреши в безопасности (поскольку со временем поддержка Drupal 7 прекратится).

Разработчики, в свою очередь, позаботились о нас с вами, и предоставили инструмент миграции уже в самом ядре движка. Данным инструментом стал модуль Migrate, который перенесет на новый сайт Drupal 8 настройки и контент со старого сайта, созданного на Drupal 7.

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

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

Я буду обновлять свой текущий сайт – onedrupal.com, и для этого разверну бэкап на локальном сервере. В качестве локального сервера в данный момент я использую – Open Server. Также и вам не рекомендую проводить обновление на действующем сайте, советую использовать, как и я, для своих экспериментов локальный сервер.

Ну что ж поехали!

Обновление Drupal 7 до Drupal 8

Процесс миграции больше напоминает создание нового сайта с переносом контента и настроек со старого. То есть в процессе обновления вы создадите полностью новый сайт на Drupal 8, на который уже и будет перенесен старый сайт (на Drupal 7) со всеми его настройками и контентом.

Основные требования

Первое, что вам необходимо сделать – это установить последнюю чистую версию Drupal 8. Скачать ее вы можете либо у меня на сайте в разделе релизы, либо же перейдя на официальный сайт Drupal в раздел загрузка.

Оба сайта должны содержать последние версии Drupal (на данный момент – это Drupal 7.56 и Drupal 8.4.3).

Сайты должны находиться на одном хостинге или, как в моем случае, на одном локальном сервере. Здесь важно, чтобы один сайт мог получить доступ ко всем необходимым данным и файлам другого сайта. Из этого следует, что база данных исходного сайта на Drupal 7 должна быть доступна на сервере новому сайту.

Также необходим доступ и к файлам исходного сайта (папка sites/default/files при стандартной установке). Если файлы сайта хранятся в публичной папке, то они будут доступны через их url. Если же файлы сайта хранятся в приватной папке, то папка должна быть перенесена в место, доступное новому сайту.

На новом сайте Drupal 8 включите системные модули, которые находятся в ядре: Migrate, Migrate Drupal, Migrate Drupal UI. Для этого поставьте галочки напротив них и нажмите внизу страницы кнопку «Установить».

Включение модулей Migrate, Migrate Drupal, Migrate Drupal UI

Как только вы нажмете кнопку «Установить», появится предупреждение о том, что это экспериментальные модули. Даем свое согласие на их установку и нажимаем кнопку «Продолжить».

Подтверждение установки модулей

Включение необходимых модулей

Перед обновлением необходимо на новом сайте (Drupal 8) установить и включить все модули, которые вы использовали на сайте под управлением Drupal 7. Обратите внимание, что часть модулей, которые остались на исходном сайте, уже включены в новую версию ядра Drupal 8 и такие модули переносить не нужно. Вам их достаточно просто активировать.

В моем случае под новую версию Drupal 8 не оказалось таких модулей, как Gravatar, Simple Anti-Spam и других незначительных модулей, которые в целом не повлияют на работу нового сайта. Эти модули либо не были перенесены на новую версию Drupal, либо были заменены другими более улучшенными версиями, которые выполняют тот же функционал. Аналоги таких модулей можно доставить самостоятельно на новый сайт.

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

Не настраивайте новый сайт на Drupal 8 до окончания переноса

Новый сайт на 8-й версии не стоит настраивать до тех пор пока, вы окончательно не перенесете контент со старого сайта, потому что процесс обновления перезапишет файлы конфигурации на новом сайте.

Миграция с Drupal 7 на Drupal 8

Как только выполнены все основные требования по подготовке нового сайта на Drupal 8, начинаем саму миграцию.

Чтобы начать миграцию, перейдите на страницу модуля Migrate Drupal UI. Для этого в адресной строке браузера к имени нового сайта допишите через слеш: /upgrade.

Переход на страницу модуля

Перед вами появятся рекомендации со всеми предварительными шагами, которые необходимо сделать перед запуском обновления. Все это мы уже проделали, поэтому нажимаем кнопку «Продолжить».

Рекомендации перед миграцией сайта

На следующей странице выберите версию Drupal, с которой будет происходить перенос сайта (1), далее введите название базы данных (2), имя пользователя базы данных (3) и пароль к базе данных (4). Если в таблице вашей базы данных есть префикс таблиц, то обязательно укажите его в дополнительных настройках.

Ниже вам необходимо указать путь к публичной папке с файлами. Поскольку я выполняю миграцию на локальном сервере, то в путь ставлю обратный слеш: sites\default\files (5). Если вы используете приватную папку, то укажите путь к ней ниже, в поле «Private file directory».

Вносим параметры к базе данных и путь к исходным файлам

Как только все необходимые поля заполнены, нажмите кнопку «Обзор преобразования».

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

Список модулей, которые не удастся импортировать

Внизу страницы нажмите кнопку «Выполнить преобразование».

Далее вы увидите, как начнется процесс миграции.

Процесс миграции

После завершения миграции вы увидите ваш сайт уже на последней версии Drupal, но не все так радужно как хотелось бы. Со старого сайта перенесся только контент, словари таксономии, пользователи и т.д. И вам еще предстоит много работы для того, чтобы сайт принял достойный вид.

Завершение миграции сайта

Весь процесс миграции записывается в лог, который вы можете просмотреть в разделе Отчеты > Upgrade log. В системных событиях вы увидите, что происходило на каждом этапе миграции.

Записи в логах процесса миграции

Ну, а теперь давайте сделаем выводы.

Выводы

Несомненно Drupal 8 дает множество новых возможностей и преимуществ по сравнение с 7-й версией. И переходить на новую версии однозначно стоит!

Но возникает ряд вопросов, а нужно ли возиться с такой миграцией? Потому как со старого сайта импортируется только контент, а донастраивать, переписывать, менять модули или тему оформления, а также исправлять ошибки старого сайта на новом вам придется вручную.

Или же лучше перенести весь контент вручную на новый сайт? Перенос контента небольшого сайта вручную по времени будет не столь затратным, но если мы возьмем большие проекты, то в этом случае это уже будет проблематичным.

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

Поскольку статей у меня немного, то лично для себя я решила, что мне будет проще создать новый сайт на Drupal 8, настроить его и только после этого перенести все статьи со старого сайта вручную.

Надеюсь, я все доступно изложила в статье, ну а если у вас остались какие-то вопросы, то пишите ниже в комментариях, я с удовольствием отвечу на них каждому.

Также напишите, как переходите на новую версию Drupal вы?

На этом все, до скорых встреч :)

Комментарии
Аватар пользователя Олег

Привет.

А опыта перехода с 6-ки на 8-ую версию нет случаем? )

Аватар пользователя Inga

Привет :)

Сразу извиняюсь, что затянула с ответом.. я думаю, что перейти с Drupal 6 на Drupal 8 без потерь нереально, ибо очень сильно изменилась архитектура ядра. Конечно помучатся можно, но как мне кажется более правильным решением будет перенести все статьи на новый сайт на Drupal 8.

Добавить комментарий