Правильное обновление между минорными версиями

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

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 15 января 2009 в 16:37

Добрый день!

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

"Сетегном" wrote:
1. Сделайте копию базы данных и файлов.
2. Проверьте работоспособность копии базы данных.
3. Войдите в аккаунт № 1.
4. Переведите сайт в режим Offline.
5. Переключитесь на страндартную тему Garland.
6. Выключите дополнительные модули.
7. Удалите старые файлы.
8. Скопируйте на их место новые системыне файлы.
9. Скопируйте обратно папки files и sites.
10. Убедитесь, что новые файлы настроек содержат верную информацию.
11. Запустите файл update.php.
12. Убедитесь, что версии всех дополнительных модулей и тем поддерживают новую версию системы.
13. Включите дополнительные модули и снова запустите файл update.php.
14. Включите используемую вами дополнительную тему.
15. Переведите сайт в режим Online.

Меня более всего интересуют пункты 5 и 6, которые я в вышеприведённой цитате специально выделил. В связи с этим несколько вопросов к гуру:
1. Так ли уж необходимо при обновлении между минорными версиями переключаться на стандартную тему, выключать дополнительные модули и удалять (а не писать поверх них) старые системные файлы?
2. Какого рода проблемы могут возникнуть, если не выполнить эти шаги в процессе обновления?
3. Насколько критично следование этим шагам при последовательном обновлении, а не обновлении через несколько ступеней (с 6.7 на 6.8, а не с 6.5 на 6.8 или 6.6 на 6.8)?
4. Что именно следует понимать под «дополнительными модулями» из пункта 6? Я до сих пор не смог уяснить себе, какой вариант правильный — а) всё кроме обязательных модулей ядра; б) всё кроме всех модулей ядра (и обязательных, и дополнительных), в) что-то ещё.

Меня это тем более интересует, что я не сумел избежать определённых проблем при обновлении даже тогда, когда следовал всем инструкциям Сетегнома — у меня отказывались нормально включаться некоторые модули (например, терялись поля, созданные imagefield'ом), а в последний раз из-за таймаута потерялся tracker.module и в течение получаса после возвращения сайту статуса «работает» я не мог найти причину отсутствия в меню трекера и его недоступности вообще.
Спасибо.

Комментарии

Аватар пользователя neochief neochief 15 января 2009 в 17:39

Пункты 5 и 6 (а также вытекающие из них части 12, 13, 14) воовсе не обязательные и даже лишние. Это я говорю вам как человек, проделавший на своем веку всю эту процедуру раз сто, если не больше.

Отдельно стоит остановиться на пункте 7. Он тоже не обязательный, но тут стоит просто понимать что под ним имеется в виду. Допустим, у вас есть модуль А, у которого есть файлы Б и В. При очередном обновлении, модуль заимел новый файл Г и избавился от файла Б. В этом случае, если вы втупую скопируете новую версию друпала поверх старой, у вас останутся все три файла, хоть Б там лишний. За исключением редчайших случаев, это никак не помешает работе сайта, поэтому, лично я этот шаг пропускаю. Однако этот шаг необходим при апгрейдах мажорных версий.

Все сказанное касается и обновлений модулей.

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 15 января 2009 в 17:39

Спасибо. Примерно так я и предполагал. Интересно, а «редчайшие случаи» в Вашей практике были? И прокомментируйте, пожалуйста, четвёртый вопрос — какие модули в данном контексте считать «дополнительными»?

Аватар пользователя neochief neochief 15 января 2009 в 17:43

Редчайшие случаи — когда убрался файл, который Друпал всегда цепляет автоматом (а у вас он остался). К примеру, в пятом друпале это файл style.css (и вроде бы script.js) в папке темы. Получится, что файл будет цепляться и получите уйму новых стилей в теме, но если б вы сделали все полностью и до конца, то этого файла просто не было бы. Такая же ситуация возможна с файлами .install, хотя тут стоит подумать. Но общая картина, вам наверное уже ясна.

Полагаю, под дополнительными модулями имелось в виду все, что не ядро.