Итак, уважаемые дамы и господа. Есть отличный официальный мануал по апгрейду Drupal с 6 на седьмую версию. Однако у него есть два недостатка:
1. он на английском языке
2. он слишком длинный и занудный
Предлагаю свою версию этого мануала. Хотя буквально вчера я мигрировал последний свой сайт с шестой на седьмую версию (и мне самому этот укороченный мануал уже не пригодится), но в рунете все еще осталось много сайтов на шестерке которые нужно мигрировать (если сайт конечно живой и развивается).
Итак, быстрый и веселый мануал по миграции на семерку:
- обновляем ядро, модули и темы до последней версии (в отчете о состоянии должно быть все зеленое)
- делаем полный бэкап базы данных и всего кода (всех файлов)
- ставим сайт в режим обслуживания
- меняем все темы на Garland
- выключаем все контриб-модули (модули которые не входят в ядро)
- удаляем файл sites/default/default.settings.php
- удаляем все файлы друпал 6 и все модули друпал 6 (оставляем ваши кастомные файлы и папки а так-же каталог /files - там где обычно лежат закачанные картинки, файлы, тумбнейлы ImageCache (уменьшенные копии картинок)
- скачиваем, распаковываем друпал 7, и заливаем его поверх нашего сайта (заливаем файлы в корень как обычно при обновлении ядра друпала)
- если вы редактировали файлы .htacces и robots.txt, эти изменения нужно заново в них внести из старой версии сайта
- даем файлу sites/default/settings.php права на запись
- запускаем скрипт обновления /update.php
- еще раз делаем бэкап базы
ура, первая часть миграции завершена!
далее нужно мигрировать поля CCK: - скачиваем модуль миграции полей: http://drupal.org/project/cck (берем модуль для седьмой версии)
- включаем этот модуль, он называется «Content Migration»
- заходим на страницу admin/structure/content_migrate и и смотрим, есть-ли поля, недоступные для миграции.
- если все поля доступны для миграции - мигрируем все поля.
- если есть поля которые не доступны для миграции - тогда сначала устанавливаем зависимые модули, запускаем /update.php, проверяем отчет о состоянии (он должен быть зеленым), после чего мигрируем все поля.
Более подробную инструкцию миграции полей на английском можно найти здесь
- скачиваем и устанавливаем все контриб-модули которые были установлены до миграции
- заходим в отчет о состоянии, и если есть что-то красное - исправляем.
Ура, мы мигрировали ядро, модули и CCK на Drupal 7!
Теперь нужно разобраться с темой оформления - адаптируем тему оформления для друпал 7
- если тема у вас была контрибовская, то нужно установить версию этой темы для друпал 7
- если тема у вас была кастомная, то необходимо заменить распечатку всех переменных в шаблонах с друпал-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то есть у меня в теме используется всего два региона
- выключаем режим обслуживания
- наливаем кофе и откидываемся на спинку кресла
Как можно заметить моя интерпретация обновления версии друпала содержит минимальную информацию о изменении темы для друпал 7. Это конечно напрямую не относится к обновлению самого сайта, но все равно в большинстве случаев приходится это делать так как все мои проекты имеют кастомные (мои собственные) темы
Если для вас эта инструкция кажется не понятной и недостаточно подробной - можете воспользоваться инструкцией от андеда, ну или если не боитсь английского - официальной с орга.