Вы здесь

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

Итак, уважаемые дамы и господа. Есть отличный официальный мануал по апгрейду Drupal с 6 на седьмую версию. Однако у него есть два недостатка:

1. он на английском языке
2. он слишком длинный и занудный

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

Итак, быстрый и веселый мануал по миграции на семерку:

  1. обновляем ядро, модули и темы до последней версии (в отчете о состоянии должно быть все зеленое)
  2. делаем полный бэкап базы данных и всего кода (всех файлов)
  3. ставим сайт в режим обслуживания
  4. меняем все темы на Garland
  5. выключаем все контриб-модули (модули которые не входят в ядро)
  6. удаляем файл sites/default/default.settings.php
  7. удаляем все файлы друпал 6 и все модули друпал 6 (оставляем ваши кастомные файлы и папки а так-же каталог /files - там где обычно лежат закачанные картинки, файлы, тумбнейлы ImageCache (уменьшенные копии картинок)
  8. скачиваем, распаковываем друпал 7, и заливаем его поверх нашего сайта (заливаем файлы в корень как обычно при обновлении ядра друпала)
  9. если вы редактировали файлы .htacces и robots.txt, эти изменения нужно заново в них внести из старой версии сайта
  10.  даем файлу sites/default/settings.php права на запись
  11.  запускаем скрипт обновления /update.php
  12.  еще раз делаем бэкап базы 

    ура, первая часть миграции завершена!
    далее нужно мигрировать поля CCK:

  13. скачиваем модуль миграции полей: http://drupal.org/project/cck (берем модуль для седьмой версии)
  14. включаем этот модуль, он называется «Content Migration»
  15. заходим на страницу admin/structure/content_migrate и и смотрим, есть-ли поля, недоступные для миграции.
    1. если все поля доступны для миграции - мигрируем все поля.
    2. если есть поля которые не доступны для миграции - тогда сначала устанавливаем зависимые модули, запускаем /update.php, проверяем отчет о состоянии (он должен быть зеленым), после чего мигрируем все поля.

      Более подробную инструкцию миграции полей на английском можно найти здесь

  16. скачиваем и устанавливаем все контриб-модули которые были установлены до миграции
  17. заходим в отчет о состоянии, и если есть что-то красное - исправляем.

    Ура, мы мигрировали ядро, модули и CCK на Drupal 7!
    Теперь нужно разобраться с темой оформления

  18. адаптируем тему оформления для друпал 7
    1. если тема у вас была контрибовская, то нужно установить версию этой темы для друпал 7
    2. если тема у вас была кастомная, то необходимо заменить распечатку всех переменных в шаблонах с друпал-6 метода на друпал 7 метод.

      print $content;
      print render($page['content']);

      Если контент не выводится вообще, в целях отладки используйте для вывода контента этот код:

      $block = module_invoke('system', 'block_view', 'main'); // блок основного контента
      print render($block);

      Если друпал считает вашу тему не совместимой с текущей, убедитесь что в файле mytheme.info есть строка для определения региона контента:

      regions[content] = content 
      данная строка должна там быть.

      Мой файл информации о теме выглядит так:

      name = _Front
      description = ''
      package = Core
      version = VERSION
      core = 7.x
      regions[sidebar] = sidebar
      regions[content] = content

      то есть у меня в теме используется всего два региона

  19. выключаем режим обслуживания
  20. наливаем кофе и откидываемся на спинку кресла

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

​Если для вас эта инструкция кажется не понятной и недостаточно подробной - можете воспользоваться инструкцией от андеда, ну или если не боитсь английского - официальной с орга.

Автора автора