Подготовка обновления Drupal 6/7 до Drupal 8

Главные вкладки

Orion76 30 ноября 2015 в 19:31
1

Это перевод статьи из официальной документации с сайта drupal.org .
Источник: https://www.drupal.org/node/2350603
Если мне не показалось, назревают желания и необходимость миграции drupal.ru на следующую версию drupal.
Начать наверное лучше с теории.
Если дело пойдет, переведу остальные материалы по данной теме.

Подготовка обновления Drupal 6,7 до Drupal 8.

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

В отличии от предыдущих крупных обновлений версии ядра Drupal, текущее обновление не изменит версию Drupal исходного сайта, а перенесет на «новый» сайт на Drupal 8 настройки и контент.
Но даже в этом случае, не следует проводить обновление на «живом» сайте, а обновляться только с копии исходного сайта.

Требования

  • Свежая установка Drupal 8 с включенным модулем ядра Migrate Drupal.
  • База данных исходного сайта (на Drupal 6,7) должна быть доступна на хосте с «новым» сайтом.
  • Необходим доступ к файлам исходного сайта (папка sites/default/files при стандартной установке). Если файлы сайта храняться в «публичной» папке, то файлы будут доступны через их url (адрес). Если файлы сайта храняться в «приватной» папке, то папка должна быть перенесена в место, доступное «новому» сайту.
  • Необходимо скачать и установить на сайт с Drupal 8 модуль Migrate Upgrade (https://www.drupal.org/project/migrate_upgrade)
  • Если вы планируете выполнить обновление при помощи Drush, необходимо установить Drush 8 (https://github.com/drush-ops/drush#install---composer) и модуль Migrate tools (https://www.drupal.org/project/migrate_tools)
  • Если вы будете переносить с исходного сайта «приватные» файлы , необходимо указать в параметре $settings['file_private_path'] в файле settings.php, путь к директории с приватными файлами.

Необходимые модули

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

Не пытайтесь до окончания переноса настраивать «новый» сайт.

Имейте в виду, что процесс обновления перезапишет файлы конфигурации Drupal 8 на новом сайте, поэтому не вносите в них никаких изменений, пока процесс переноса не будет завершен.
Это означает, что вы не должны создавать все типы контента и поля вручную перед запуском обновления. Модуль Migrate создаст их во время процесса пареноса сайта.
В этом отличие работы модуля Migrate, используемом для обновления сайта до Drupal 7. Который требовал наличие уже настроенных типов контента и полей, перед запуском обновления.

Автор

Комментарии

Аватар пользователя dropout dropout 30 ноября 2015 в 20:08

Если на семерке использовался формат текста, которого нет в восьмерке, то его надо будет создать. Но создать его можно будет и позже.
У меня на семерке для зареганых пользователй стоял filtered html, в восьмерке его нет и после апгрейда вывелись только заголовки нод. Поле Body не выводилось. Посмотрел в журнал- в журнале запись, что не находит формат filtered html и после добавления формата на странице .../admin/config/content/formats все ноды с комментами отобразились нормально.
Был правда еще один баг. Друпал не принимал старые пароли юзеров. Но этот вопрос решился сбросом пароля и одноразовой ссылкой.
Смущает немного структура базы. Много таблиц с семерки.
Пример из терминала
public | migrate_message_d7_comment_entity_form_display | table |
public | migrate_message_d7_comment_entity_form_display_subject | table |
public | migrate_message_d7_comment_field | table |
public | migrate_message_d7_comment_field_instance | table |
public | migrate_message_d7_comment_type | table |
public | migrate_message_d7_contact_settings | table |
public | migrate_message_d7_custom_block | table |
public | migrate_message_d7_dblog_settings | table |
public | migrate_message_d7_field | table |
public | migrate_message_d7_field_formatter_settings | table |
public | migrate_message_d7_field_instance | table |
public | migrate_message_d7_field_instance_widget_settings | table |
public | migrate_message_d7_file | table |
Но их я правда еще не ковырял.
Переехал на d8 где то с недельку назад.
Директорию files пришлось переносить в ручную. Через модуль не импортировалась, хотя пробовал разные варианты путей. Но это в терминале делается за несколько секунд. Не проблема.
База postgresql.

Аватар пользователя tlito tlito 30 ноября 2015 в 22:42

php 5.5.9 или 5.6 и выше - иначе ваша новая установка друпал 8 будет давать ошибку за ошибкой или даже не поставится.

Аватар пользователя multpix multpix 30 ноября 2015 в 23:35

Че, так любишь переводы делать?
Дак лей их наgitbook, в свою записную книжку к примеру.
Так, при необходимости, можно будет потянуть исходники текста, совместно чет делать, да и читать удобно.
Минус - мне редактор их онлайновый не совсем нра(а именно его предпросмотр текста), но ет субъективно.

Аватар пользователя Orion76 Orion76 1 декабря 2015 в 6:28

multpix wrote:
Че, так любишь переводы делать?


Да не то, чтоб прямо люблю.. А что делать?-)

Лично для себя так переводить лень, а так, побольше коллег в тему вникнут, глядишь и перенесем druru на восьмерку.

А там, как ты говоришь, и другие перспективы откроются..-)
Хорошо.. выложу на gitbook..
да.. перевод не идеален, еще дорабатывать надо...

Аватар пользователя Orion76 Orion76 1 декабря 2015 в 20:43

gor wrote:
@Orion76 буду рад помощи по https://github.com/DrupalRu/drupal.ru/issues/118

Да я с удовольствием, но быстро не обещаю-)
Столько еще всего интересного, чегоб хотелось поделать-)

Есть предложение от коллег, перевести drupal.ru на 8-ку..
Т.к. с упрощеним деплоя 8-ки, вроде как проще организовать совместную работу над drupal.ru .
Ты что об этом думаешь?
Справимся до осени?-)

Аватар пользователя gor gor 1 декабря 2015 в 23:55

Рано об этом говорить. Drupal8 только вышел. Процесс будет медленнее чем на Drupal 7 сделать.

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

Например при поднятии своей копии сайта скриптом:
https://github.com/DrupalRu/drupal.ru/blob/master/scripts/install.drupal...

Вот эта строка:
exec('drush ddi menu --file=' . $data['github_path'] . '/data/user-menu.menu_links.export');

импортит настройки меню которые описаны в файле:
https://github.com/DrupalRu/drupal.ru/blob/master/data/user-menu.menu_li...

в JSON формате.
Пример:

    {
        "menu_name": "user-menu",
        "weight": 0,
        "link_title": "Create new account",
        "link_path": "user\/register",
        "hidden": -1,
        "has_children": 0,
        "expanded": 0,
        "options": [

        ],
        "module": "system",
        "customized": 0,
        "updated": 0
    },

Аватар пользователя gor gor 2 декабря 2015 в 12:52

@Orion76 послал тебе приглашение на гитхабе. Как добавишься, issue по переводу на тебя делегирую.

А по полномочиям, будет отдельный топик в ближайшее время.

Аватар пользователя Gnom7 Gnom7 31 января 2016 в 3:07

С шестой версии обновить сразу до восьмой возможно?
Я пытался, выдает ошибку
«Resolve the issue below to continue the upgrade.
Source database does not contain a recognizable Drupal version.»

Аватар пользователя VGa VGa 29 февраля 2016 в 15:30

С шестой версии обновить сразу до восьмой возможно?
Присоединяюсь к вопросу. Пора обновляться.