Миграция с Drupal 7 на 8 - Практическое руководство по решению проблем миграции (с рекомендациями)
Опубликовано: 2020-02-27Вы думаете о миграции с Drupal 7 на 8? Вы все еще используете свой сайт на Drupal 7 (или 6)? Пришло время перейти на Drupal 8!
Мы много писали о том, почему вам следует перейти на Drupal 8, если вы все еще используете Drupal 7 (или 6). Хотя одна из наших самых любимых (и важных) причин для перехода на Drupal 8 заключается в том, что ... Drupal 9 скоро появится! А если вы хотите воспользоваться преимуществами Drupal 9, рекомендуется сначала перейти с Drupal 7 на Drupal 8. Мы могли бы возразить, что вам следует перейти на Drupal 8 сейчас, потому что не хватит времени, когда Drupal 9 здесь (июнь 2020 г.) и EOL Drupal 7 (ноябрь 2021 г.). Но вы можете заявить, что вместо этого можете выбрать LTS (долгосрочную поддержку)! Справедливо. За исключением того, что помимо того, что вы тратите больше денег на привлечение поставщика услуг LTS, вы также теряете богатые преимущества, которые предлагает Drupal 8. Некоторые вещи могут показаться трудными, но они необходимы для более сильного и простого будущего.
Попав в Drupal 8, вам больше не нужно «мигрировать» - достаточно простого «обновления» с Drupal 8.9 до 9, а затем с 9.9 до 10 и так далее. Миграция с Drupal 7 на Drupal 8 не всегда проста и понятна; Я согласен. Выполнение процесса помогает, но вы все равно можете столкнуться с некоторыми проблемами во время миграции, особенно если модель содержимого вашего веб-сайта Drupal 7 значительно сложна. Давайте проведем вас через пошаговую миграцию с Drupal 7 на Drupal 8 с проблемами, с которыми вы можете столкнуться. И наши рекомендации по их преодолению.
Drupal 8 Migrate - Предположения и подготовка
« Быть готовым - это половина победы », - сказал испанский писатель Мигель де Сервантес. Миграция на Drupal 8 может быть сложной, но если вы потратили достаточно времени на планирование миграции, проблемы вас не удивят. Принятие Drupal 8 многих современных стандартов разработки, таких как Symfony, Twig, PHP 7 и т. Д., Привело к этой полной перестройке, но также требует более мощных, надежных и гибких цифровых возможностей. Перечислены несколько предварительных условий, которые вы должны запомнить перед тем, как начать миграцию с Drupal 7 на 8:
- Обновите свой сайт Drupal 7 до последней доступной версии. Это поможет в более чистом автоматическом обновлении некоторых модулей, у которых есть прямые пути обновления Drupal 8.
- Убедитесь, что у вас есть доступ к базе данных и файлам сайта Drupal 7 (общедоступным и частным).
- Создайте резервную копию веб-сайта Drupal 7 и используйте эту резервную копию для миграции на Drupal 8. Не рекомендуется переносить действующий функциональный веб-сайт, хотя сама миграция не вносит никаких изменений в исходный код.
- Загрузите новую установку Drupal 8 отсюда и включите основные модули Migrate, которые мы обсуждали выше. И помните, он ДОЛЖЕН быть свежим! Любые сделанные настройки или созданный контент будут перезаписаны при обновлении Drupal 8.
- Нет прямого пути обновления с Drupal 7 до Drupal 8 (в отличие от обновлений предыдущих версий). Ознакомьтесь с системой миграции Drupal 8. Три модуля, которые находятся в ядре, - модуль Drupal 8 Migrate, модуль Drupal 8 Migrate Drupal и модуль Drupal 8 Migrate Drupal UI .
- Сделайте свой выбор миграции - будете ли вы использовать Drush (который дает вам детальный контроль) или вы будете использовать пользовательский интерфейс браузера (проще, но меньше контроля)?
- Знайте свой источник. Гибкость системы миграции контента Drupal позволяет извлекать и загружать контент из более старых версий Drupal и различных других источников, таких как CSV, XML, JSON, MYSQL и т. Д.
- Для плавной миграции контента Drupal выполните тщательный аудит контента, чтобы определить контент, который вам нужно перенести. Удалите неиспользуемый и нерелевантный контент, чтобы не тратить время и силы на его перенос.
Процесс миграции с Drupal 7 на 8 (шаг за шагом)
Наблюдать и планировать
Плавная миграция контента Drupal требует, чтобы вы сначала идентифицировали типы контента и структуру контента существующего сайта и задокументировали наблюдения. Сюда входят типы контента, типы полей, блоки, таксономии и т. Д. На основе этих наблюдений подготовьте план того, что вам нужно перенести, а что нужно объединить. Анализируйте представления и другие конфигурации сайта и каталогизируйте их, чтобы их было проще воспроизвести в Drupal 8.
Создайте контрольный список модулей вашего сайта Drupal 7
С помощью этого контрольного списка вы сможете определить модули, которые вам все еще нужны, или существует ли версия этого модуля для Drupal 8, или если модуль теперь перемещен в Drupal 8 Core (например, модуль Media). Не все модули Drupal 7 можно автоматически перенести на Drupal 8. Некоторые модули Drupal 7 могли объединить свои функции в один модуль Drupal 8. А некоторые модули Drupal 7 могли разделить свои функции на два или более модулей Drupal 8. Такие случаи всегда лучше проанализировать, чтобы убедиться в отсутствии потери данных!
Рекомендация эксперта - используйте такой модуль, как пользовательский интерфейс Drupal Migrate, чтобы идентифицировать модули Drupal 7 и их соответствующий модуль Drupal 8 (если он доступен или нет).
Совет от профессионала - нет версии модуля для Drupal 8? Например, модуль ImageField в Drupal 7 не имеет соответствующего модуля D8. Возможно, нам придется найти наиболее подходящую альтернативу, доступную для этого в Drupal 8. Конечно, у нас есть модуль ядра Drupal 8 Media. Однако нам придется разработать собственные сценарии для переноса данных изображения. перенести данные изображения.
Рекомендация эксперта - если вы только что унаследовали веб-сайт D7 и не знаете, какие настройки были внесены в модули ИЛИ если вы сделали настройки самостоятельно и вам нужно их найти, мы рекомендуем вам использовать Hacked! модуль. Этот модуль будет проходить через список модулей, доступных на сайте, и изменения / настройки, сделанные для каждого модуля.
Репликация и сборка
Реплицируйте типы контента, таксономии и все сущности, которые требуются в вашем экземпляре D8. Представления должны быть созданы вручную после того, как вы создали и реплицировали содержимое.
Рекомендации экспертов -
- Файлы шаблонов (.tpl) в Drupal 7 должны быть написаны переписанными с использованием файлов twig, которые являются частью фреймворка symphony 2.
- Убедитесь, что вы переписываете свои собственные модули в соответствии со стандартами симфонии.
Осуществление миграции с Drupal 7 на 8
Наступил самый долгожданный и значительный шаг. Как обсуждалось ранее, есть два способа перенести данные из Drupal 7 в Drupal 8:
- Запуск миграции с помощью пользовательского интерфейса Drupal
- Выполнение миграции с помощью Drush
Последний рекомендуется, поскольку он более эффективен, может быть включен в сценарии оболочки и имеет более четкие сообщения об ошибках.
Метод пользовательского интерфейса Drupal
Используя модуль Migrate UI Drupal 8, вы можете начать с посещения пути / upgrade на веб-сайте Drupal 8. Страница обзора обновления Drupal 8 покажет вам список модулей на вашем сайте Drupal 7, которые могут и не могут быть автоматически перенесены на Drupal 8. Для модулей, которые имеют свои функции в другом модуле D8, но не совсем такие же (например, модуль AddressField в D7 теперь является модулем адреса в D8), вам нужно будет установить и включить соответствующий модуль D8 и перезапустить процесс миграции с Drupal 7 на 8. На основе каталога контента и извлеченных данных, необходимых для создания сценариев миграции, в которых вы сопоставляете атрибуты типа контента Drupal 7 с недавно созданными атрибутами типа контента Drupal 8. Затем вы можете продолжить импорт данных из источник данных.
Метод Друша
Вам удобно пользоваться терминалом? Если это так, вам следует выбрать метод Drush для миграции с Drupal 7 на 8. Он предоставляет набор команд для процесса миграции данных с улучшенными сообщениями о состоянии. Ознакомьтесь с этим руководством, если вы ищете пошаговую процедуру миграции с помощью команд Drush. Никогда раньше не пользовались Drush? Это руководство поможет вам понять основы Drush со списком полезных команд для миграции.
Теперь у вас могут возникнуть конфликты. Убедитесь, что вы проверили известные проблемы в Drupal. org и как их исправить. После исправления теперь вы можете запустить процесс миграции, который ведет непрерывные журналы / обратную связь о предпринятых действиях. Наконец, проверьте журналы на наличие ошибок, исправьте их, и все готово!
Рекомендация эксперта - подождите! Создав контент, никогда не упускайте из виду SEO / просмотры страниц. Нам нужно, чтобы у контента были одинаковые URL-пути. Не забудьте позаботиться о переносе псевдонимов URL-адресов, информации о метатегах содержимого со старого сайта Drupal 7.
Тестирование
В очень редких случаях вы не столкнетесь с нулевыми проблемами во время миграции с Drupal 7 на Drupal 8. После завершения миграции абсолютно необходимо регрессионное тестирование недавно импортированной конфигурации и содержимого для выявления любых потенциальных ошибок или проблем.
Проблемы и (более экспертные) рекомендации
- Многие модули, предоставленные Drupal 7, имеют улучшенные версии самих себя в Drupal 8, а некоторые из них устарели. Например, модуль Field Collection, который используется для группировки полей в Drupal 7, скоро станет устаревшим. Функциональность этого модуля была добавлена в модуль Paragraphs и модуль Entity Reference Revision в Drupal 8. Модуль Drupal 8 Paragraphs обеспечивает огромную гибкость редакторам / авторам контента для создания бесшовных форм и структур. Если вам нужно перенести модуль Field Collection и сопоставить его с модулем Paragraphs (D8), вам нужно будет написать настраиваемые плагины для сопоставления содержимого между полями Field Collection и Paragraph. Или, если вы все еще хотите продолжить миграцию модуля Field Collection даже в Drupal 8, это сопоставление полей может обрабатываться доступными плагинами Core migrate.
- Используете ли вы панели для создания целевых страниц, таких как домашняя страница, панель инструментов и т. Д.? Даже если вам нужно всего лишь разместить блок на главной странице? Конструктор макетов спешит на помощь! Layout Builder в Drupal 8 упрощает редактору контента настройку целевой страницы. Давайте наилучшим образом воспользуемся функциями Drupal 8. Чтобы перейти с панелей на Layout Builder, вам нужно будет написать несколько настраиваемых плагинов миграции.
- Во время миграции пользователей нам также придется поддерживать пароли, чтобы пользователю не приходилось заново создавать пароль на новом сайте. Пароли представляют собой хешированное содержимое. Итак, вы должны найти алгоритм типа хэша, который используется на исходном сайте. Следующий. напишите процесс для проверки перенесенного пароля с повторно хешированным паролем, используя тот же алгоритм.
- При выполнении миграции с Drupal 7 на 8 вы можете исчерпать системные ресурсы, что может привести к остановке миграции. Благодаря отметкам высокого уровня вы можете снова запустить миграцию, и она должна возобновиться с того места, где была остановлена.
- Широко используемый модуль функций в Drupal 7 теперь почти устарел после того, как Управление конфигурацией взяло на себя все функции функций и многое другое в Drupal 8. Хотя модуль функций также доступен в Drupal 8, настоятельно рекомендуется использовать конфигурацию Drupal 8. Система управления. С ним не только проще работать, с ним легко экспортировать между средами, он использует форматы файлов YAML вместо PHP, который является более читаемым и правильным форматом данных.
- Если у вас есть многоязычный веб-сайт Drupal 7 (или 6), вы можете использовать модуль Migrate Drupal Multilingual. Хотя многоязычный модуль Migrate Drupal все еще находится на экспериментальной стадии, он является обязательным модулем для всех многоязычных сайтов Drupal.
- Возникли проблемы с переходом с Drupal 7 на Drupal 8? Есть несколько способов сообщить о сбоях и получить помощь -
- Очередь проблем при обновлении Drupal 8
- Очередь проблем модуля, если вы обнаружите ошибку или исключение в основном / дополнительном модуле
- IRC-канал # drupal-migrate на Freenode
- Канал #migration на Drupal Slack
- Нанять эксперта по Drupal

