Drupal 8 принес много изменений в нашу CMF, кому то они пришлись по вкусу, кому то, показались излишними и очень сложными, но равнодушных явно не осталось. Сегодня, мы с вами займемся, наверное, в ближайшее время самым популярным видом работы у фрилансеров – переход на 8ку.
В новой ветке, такого понятия как обновления (upgrade) ядра - больше нет, т.е. мы с вами не может скопировать файлы Drupal 8 в корень нашего сайта, например на Drupal 7 и запустить update.php – как мы делали в предыдущих релизах движка.
Теперь единственный путь использовать новую ветку это – миграция. Благо разработчики не оставили нас наедине с данной проблемой и попытались максимально упростить нам жизнь и включили инструмент миграции в ядро движка. Этим самым инструментом стал модуль migrate (хотя и урезанная версия). Наверное, многие из вас уже успели с ним поработать, а те, кто впервые слышит – отличная возможность с ним познакомиться.
Модуль migrate позволяет импортировать контент из различных источников, не только внутри веток Drupal, но и сторонних БД, CSV, XML, JSON файлов или CMS. Миграция контента в Drupal 8 будет разбита на несколько уроков, ну а сейчас мы разберем самый простой из них – с использованием пользовательского интерфейса.
Хочу заметить, что миграция предполагает только перенос контента и вас никто не избавит от переписывания вашей темы под новую ветку или переписывание кастомных модулей.
Миграция Drupal 7 → Drupal 8 с использование UI
У меня есть два сайта, один на Drupal 7 – с него мы будем экспортировать контент и Drupal 8 – в который мы будем импортировать наши материалы. Оба сайта расположены на локальном хосте.
Для этого активируем необходимые нам модули в Drupal 8:
- Migrate – ядро миграции
- Migrate Drupal - производит миграцию со старых версий движка
- Migrate Drupal UI – предоставляет пользовательский интерфейс для миграции
После чего идем по адресу
sitename.ru/upgrade
Где, нам настоятельно рекомендуют проделать 5 пунктов перед миграцией
- Создать бекап БД сайта
- Убедиться, что вы имеете доступ к БД экспортируемого сайта
- Убедиться что, все ваши приватные файлы так же находятся на локальном хосте сайта (в открытом доступе ), если таковые файлы имеются
- Включить все модули, которые вы использовали на предыдущей ветке Drupal
- Перевести сайт в режим обслуживания
После того, как вы выполнили все рекомендации – жмем «Продолжить». Теперь перед нами открывается форма, где нам осталось лишь указать тип БД , параметры подключения к БД и путь к каталогу с файлами
Хочу заметить, что желательно указывать путь к каталогу или адрес экспортируемого сайта, ибо только так гарантируется перенос ваших файлов.
И жмем «Обзор обновления», где мы увидим список того, что мы сможет импортировать, а что нам не удастся.
Хочу заметить, что многих модулей, таких как contextual или dashboard больше не существует в ядре Drupal 8, поэтому они будут указаны в списке того, что мы не сможем импортировать.
После того, как вы убедились, что в данном списке нет критически важных для вас модулей – жмем «Выполнить обновление», где запустится процесс миграции контента.
После завершения миграции, вы должны увидеть ваш контент, пользователей, словари таксономии – если таковые имелись и т.д.
Так же все события в процессе миграции записываются в лог, где вы можете посмотреть, что происходило на каждом этапе миграции
Данный способ, достаточно простой и подойдет для сайтов, в которых не было реализовано кастомных сущностей, иначе без написания своего модуля импорта не обойтись.