Обновление Drupal 6. Как это делаю я.

В очередной раз столкнулся с обновлением движка Drupal 6 для своего сайта. На этот раз всё было немного сложнее чем обычно. Во первых я некоторое время игнорировал обновления. Во вторых с каждым днем всё больше модулей, которыми я пользуюсь и которые тоже нужно обновлять. И вот незадача – я каждый раз забываю очередность – что нужно сделать.
Поэтому я решил заодно все свои шаги набросать в доку (о том, выложить на суд народа или нет вопрос уже и не стоял))) ).

Конечно же описаний установки и обновления довольно много в рунэте. Да и приложенные к движку описания тоже нечего, хотя они и на английском. Но к многим описаниям есть замечания, например, мне не понравилось то, что народ делает бэкап сайта не введя сайт в режим тех обслуживания – также можно и статистику потерять, или чей-то комментарий. В общем хотелось бы иметь свою писульку, с блэк-джеком и шлюхами)))))

Пошаговое описание смотри далее…

В очередной раз столкнулся с обновлением движка Drupal 6 для своего сайта. На этот раз всё было немного сложнее чем обычно. Во первых я некоторое время игнорировал обновления. Во вторых с каждым днем растет всё большее количество модулей, которыми я пользуюсь. И вот незадача – я каждый раз забываю очередность – что нужно сделать.
Поэтому я решил заодно все свои шаги набросать в доку (о том, выложить на суд народа или нет вопрос уже и не стоял))) ).

Конечно же описаний установки и обновления довольно много в рунэте. Да и приложенные к движку описания тоже нечего, хотя они и на английском. Но к многим описаниям есть замечания, например, мне не понравилось то, что народ делает бэкап сайта не введя сайт в режим тех обслуживания – также можно и статистику потерять, или чей-то комментарий. В общем хотелось бы иметь свою писульку, с блэк-джеком и шлюхами)))))

Пошаговое описание обновления CMS Drupal

В общем вот что я делаю каждый раз (правда всего второй раз в жизни:) ) :

1. Переводим сайт в режим на тех обслуживании (admin/settings/site-maintenance).

2. Делаем бекапы файлов и базы данных.

3. Выключаем все левые модули предварительно запомнив какие были включены – можно просто сохранить страничку с модулями.

4. Удаляем все папки кроме:

files\ — этой папки даже в обновлении нет
sites\ — если залить в неё поверх новую, то просто обновится default.settings.php, а
settings.php будет жить дальше. У меня там больше ничего и нет.

5. В папке sites\ изменяем права на запись с 0644 на 0755.

6. Заливаем все файлы нового движка.

7. Сморим как изменился файл \sites\default\default.settings.php в новой версии движка по сравнению с нашим \sites\default\settings.php и если он таки поменялся, добавляем изменения в наш \sites\default\settings.php.

8. Заливает с бекапа поверх нового движка файлы:

.htaccess
robots.txt
фалы подтверждения гугла, яндекса, и другие файлы – которые менялись в процессе.

Советую здесь перед заменой сравнить файлы через Shift + F1 в тотале чтобы, не дай бог, не потерять пару строчек изменения.

9. В папке sites\ изменяем права на запись обратно с 0755 на 0644.

10. Запускаем /update.php и выбираем все максимальные циферки в обновлениях модулей.

11. После обновления проверяем Отчёт о состоянии (admin/reports/status) и если никаких замечаний по обновлению нет – также запускаем cron и проверяем вдруг что-то еще обновилось.

12. Если всё нормально – в папку модулей копируем наши отличные от ядра модули. Также не помешало бы на данном этапе удалить не нужные стандартные модули, т.к. не использую я много модулей и места под сайт выделено не густо.

13. Заходим в раздел Модули и подключаем все необходимые (подглядывая в ранее сохраненную HTML).

После этого может появится много предложений обновить наши нестандартные модули. Если предложат — качаем все обновившиеся модули.

Перед обновлением модули отключать не нужно. Необходимо удалить старые файлы модулей и залить новые.

После этого запустить /update.php и в перечне модулей выбрать наиболее высокие циферки.

При обновлении могут возникать различные ошибки. На ниже перечисленные ошибки я не реагировал:

user warning: Table ‘captcha_sessions’ already exists query
user warning: Duplicate key name ‘pid’ query
user warning: Table ‘taxonomy_menu’ already exists query

Тут всё просто – кое что не смогло добавиться из за того что оно уже есть… Это, как мне показалось, не критично.

А вот такие ошибки настораживают:

user warning: Unknown column ‘access’
user warning: Key column ‘access’ doesn’t exist in table query

Эти ошибки означали что в запросах есть поле ‘access’ , которого нет в базе. Обновление относилось к модулю xmlsitemap. В результате у меня не создавался моя карта сайта и в логах постоянно светились ошибки о неизвестном поле ‘access’. Ошибку удалось исправить переустановкой обновлений модуля xmlsitemap, предварительно отчистив все записи таблицы xmlsitemap. Почему ошибка возникла – сказать затрудняюсь. Мне кажется, вовремя обновления мог запуститься cron и не дать изменить базу. Но тем не менее ошибка ушла.

14. Можно, а пожалуй даже нужно из корня сайта удалить следующие файлы:

CHANGELOG.txt
COPYRIGHT.txt
install.php
INSTALL.txt
INSTALL.mysql.txt
INSTALL.pgsql.txt
LICENSE.txt
MAINTAINERS.txt
update.php
UPGRADE.txt

Они нам уже не пригодятся =).

15. Когда всё обновлено и работает – выводим сайт из режима техобслуживание.

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

Пы.Сы. Если кто-то хотел бы что-то добавить – добавляем в комментариях.

Добавить комментарий