-
Отключаем, деинсталлируем и удаляем неиспользуемые модули. Аналогично поступаем с модулями, которые больше не понадобятся на Drupal 7 (например admin_menu, poormanscron и т.д.). Uninstall делается на странице
admin/build/modules/uninstall
. -
Записываем список включённых модулей со страницы
admin/build/modules
. Drush юзеры могут воспользоваться командойdrush pm-list --status=enabled
. -
Обновляем Drupal 6 до последней минорной версии (если нужно). Drush юзеры могут воспользоваться командой
drush up drupal
. -
Обновляем контриб модули до последних версий. Проверить статус модулей можно на странице
admin/reports/updates
(должен быть включён модуль Update status). Drush юзеры могут воспользоваться командойdrush up
. Не забываем запускатьupdate.php
после обновления файлов модулей. -
Тестируем работу друпала с новыми версиями модулей.
-
Обязательно делаем полный бэкап сайта. Drush юзеры могут воспользоваться
drush archive-dump
. Нет никакой гарантии что всё пройдёт гладко :) Лучше всего создать клон текущего сайта и проводить обновление на нём. -
Логинимся под юзером с ID 1 (рут админ).
-
Переводим сайт в режим техобслуживания (
admin/settings/site-maintenance
). Если вsettings.php
есть переопределение параметра$conf['maintenance_theme']
, то комментируем этот код. -
Устанавливаем Garland в качестве дефолтной темы (
admin/build/themes
). В качестве административной темы тоже выбираем Garland (admin/settings/admin
). -
Выключаем все контриб модули (
admin/build/modules
). -
Удаляем файл
sites/default/default.settings.php
. -
Удаляем все папки/файлы относящиеся к ядру, за исключением папки
sites
. Системные папки и файлы (напримерcgi-bin
илиwebstat
), как и пользовательские файлы (например файлы идентификации Google или Яндекс) удалять не нужно. -
Скачиваем последнюю стабильную версию Drupal 7 и распаковываем файлы туда где раньше находились файлы Drupal 6.
-
Изменяем файл
.htaccess
если в нём хранились специфические настройки сервера. Аналогично поступаем сrobots.txt
. -
Даём файлу
settings.php
права на запись. -
Открываем в браузере адрес
http://your-domain/update.php
и следуем указаниям мастера. Если по каким то причинам доступ запрещён, то открываем в текстовом редакторе файлsettings.php
и заменяем строчку$update_free_access = FALSE;
на$update_free_access = TRUE;
(после завершения мастера, этот параметр нужно вернуть в исходное состояние).У меня отчего-то любое обращение к update.php выполнялось по несколько минут. Пришлось сначала выкрутить на полную
max_execution_time
, а потом поставить патч, который и решил проблему. -
После окончания работы update.php делаем бэкап базы.
-
Если на сайте использовался модуль CCK, то нужно сконвертировать поля в новый формат:
— скачиваем CCK под Drupal 7
— включаем модуль Content Migration на страницеadmin/modules
— переходим на страницуadmin/structure/content_migrate
и конвертируем поляДля полей в разделе Unavailable fields нужно скачать (если это контриб) и включить соответствующие модули. После включения не забываем запускать update.php.
-
Обновляем контриб модули записанные в первом пункте:
— удаляем директорию модуля
— скачиваем на его место версию под Drupal 7
— включаем модуль
— запускаем update.phpДля Drush юзеров это:
—
drush dl module_name
—drush en module_name
—drush updb
-
Открываем страницу
admin/reports/status
и убеждаемся что всё работает как надо. -
Отключаем режим техобслуживания (
admin/config/development/maintenance
). -
Если тема была кастомная, то переделываем. Иначе просто обновляем так же как и модули.
По материалам Upgrading from Drupal 6 to 7.
- Вставка в CKEditor видео из ВКонтакте и Rutube (расширение модуля CKEditor 5 Media Embed)
- Как из PhpStorm выполнить тест(ы)
- Как работает опция "Aggregation type" в настройках полей Views при включённой агрегации
- Создание сравнительной таблицы с значениями из EAV Field
- Препроцессинг настроек форматтера перед сохранением
Комментарии
Жди Андед наплыва криво-апдейтеров
23. Если ничего не получилось, востанавливаем сайт из бекапа, и продолжаем сидеть на 6-ке.
Обновился до семерки. Выдает:
Notice: Undefined index: 6 в функции user_node_load() (строка 3561 в файле /home/.../mistakes.ru/www/modules/user/user.module).
Notice: Trying to get property of non-object в функции user_node_load() (строка 3561 в файле /home/.../mistakes.ru/www/modules/user/user.module).
Может, подскажете, где копать?
копать в сторону трэкера drupal.org ;)
а как драшом обновлять модули с 6 на 7? обычный метод не подходит, по крайней мере мне ошибку выдаёт
drush dl modulename
cпасибо, великолепно!!!
а как драшом обновлять модули с 6 на 7?
drush up не забудь, базу тоже обновлять надо ;)
Спасибо, отличная инструкция!
Да, инструкция что надо! Добавлю: если на последних этапах появляются unexpected errors, то источник можно отследить в логах /admin/reports/dblog
у меня почему то xmlsitemap заглючил. пришлось убить и поставить заново, благо настроить именно его по новой не проблема)
После п.3 желательно сделать бекап - чтобы не выполнять тоже самое при неудачном обновлении модулей. Модули тоже можно обновлять отдельно(или небольшими группами:)) с последующим бекапом.
Если возникнут сложности с обновлением, обращайтесь - Сервис обновления версии Друпал
Вы уж извините за некропостинг.
Подскажите, хоть примерно, в какую сторону копать:
после обновления до 7ки (по вышеприведенной инструкции) сайт выдает
"Error
The website encountered an unexpected error. Please try again later." на любой странице.
без каких либо подробностей ;(
читайте логи
xandeadx, не серчайте ;)
Какие логи, где они лежат..В папке с друпалом ничего похожего не вижу, в базе искал таблицу вроде reports, но тоже ничего не нашел.
логи веб-сервера, логи php, логи mysql. где лежат зависит от сервера, можно узнать в гугле.
логи друпала в таблице watchdog
Оставлю на будущее:
Оказывается под "отключите все сторонние модули" подразумеваются так же не обязательные модули ядра.
Все поля перенеслись кроме тех у которых модуль нужен filefield, который только для 6-ки, выдает ошибку "Missing field module: 'filefield'. This field cannot be migrated.". Т.к. это было поле с изображением, хотел создать еще одно поле в типе материала и задать ему виджет изображение, но почему-то на выбор такого виджета нет. Подскажите куда копать?
По пункту 10, если модулей насчитываются сотни, с чем я и столкнулся. :)
а. Отключать, соблюдая зависимости.
б. Первыми выключаем модули связанные с кешем, производительностью и сверткой JS/CSS.
в. Затем отключаем все модули CCK и Views - они самые тяжёлые в плане работы админки сайта и drush.
Спасибо большое за материал! Обновился без проблем с d6 до d7! Но и сайт у меня не особо напичканный модулями. Самое главное - все синонимы сохранились. Для seo очень важно.
Для всех, кто будет обновляться: после обновления ОБЯЗАТЕЛЬНО прошерстите настройки модулей. Например, в таких, как Page Title и Pathauto нужно поменять токены
Здравствуйте. Пытаюсь сотый раз обновить сайт до 7-ки, однако после пункта 16 (...update.php) появляется сообщение о ошибке "DatabaseSchemaObjectExistsException: Cannot add index system_list to table system: index already exists. in DatabaseSchema_mysql->addIndex() (line 437 of Z:\home\site.loc\www\includes\database\mysql\schema.inc)." и "окончания работы update.php" не происходит.
Можете помочь разобраться в чем дело?
Буду премного благодарен
Я вот на распутье. Обновлять сайт с 6 до 7. Или используя feeds перенести все накопленное в семерку "с нуля"? На сайте работает ubercart, боюсь обновление пройдет более, чем криво
1. Тема для 7-ки готова?
2. Я бы сделал с нуля.
3. Забыл бы про уберкарт и сделал на коммерце.
4. Уже вот-вот 8-ка с коммерцом сделают - уж лучше сразу на 8-ку! ;-)
Спасибо за ответ
Тема для семерки есть
Тоже больше люблю комерц
8-ка не годиться, так как многих необходимых модулей, которые понадобяться в работе еще нет для 8 версии
Сейчас смотрю на модуль feeds, но не могу найти кто-то реально перенес с его помощью данные или только перевели на русский очевидные вещи
Возьми парсер http://xandeadx.ru/blog/drupal/554
Или сделай свой
И сделай с нуля. Уверяю так лучше будет
Ты прайсы в магазине, цены - обновляешь?
Больше склоняюсь делать с "нуля" так как разработка на 6 друпале не моя.
Нужно перенести все. Юзеров, таксономию, ноды и продукты из Ubercart. И после этого еще куча работы. а я вот "застряла". Спасибо, гляну парсер
Добавить комментарий