Всем привет! Сталкивался ли кто со следующей незадачей?..
Понадобилось обновить версию ядра с 6.20 до 6.35. Никогда раньше не делал, поэтому принялся я читать буквари. Всё, вроде, понял. Приступаю.
Локальная машина. Винда. Делаю копию папки в проводнике и снимаю базу через phpMyAdmin.
Под пользователем №1 выключаю сайт в разделе Site maintenance (off-line), очищаю кэш в разделе Performance, переключаюсь на тему Гарланд.
Далее, не стал удалять файлы из Друпаловской папки, поскольку я на своем компе, а запускаю Araxis и сравниваю текущую со скачанной версией 6,35. Копирую все изменения из 6,35 в 6,20. За исключением папки sites.
Далее - запускаю localhost/update.php
Иду в админку, смотрю на темы. Темы поменяли цифры с 6,20 на 6,35. Ну и хорошо, включаю снова нужную тему.
Проверяю работу сайта - все пучком.
Далее, хочу добавить кое-чего, а именно - PHPmailer. Снова читаю книжки. Надо поставить Libraries API. Иду в админку. У меня был установлен неподходящий модуль, для 7-й версии. Он соответственно, рисуется с красным кружком, дескать, негодится. Открываю проводник и удаляю папку с этим модулем. Закидываю туда libraries-6.x-1.0. Туда - это в sites\all\modules.
Иду любоваться в админку на новый модуль, и вот он - есть. А старого, который с красным кружком уже и след простыл.
Далее мне нужно установить классы для почты. Я копирую пару файлов в sites\all\libraries\phpmailer.
Пытаюсь проверить, что все в порядке и что-то не вижу нужных опций в Permissions. Перечитываю мануал, делаю какие-то движения, сбрасываю кэш снова, обновление запускаю, выхожу-вхожу на сайт, перезапускаю денвер, всё бес толку и в какой-то момент времени у меня в браузере вообще перестает что-либо показываться. Крутится волчок и под конец только надпись localhost и чистый экран.
Компьтер к тому моменту уже израдно стал тормозить и я решаю перезагрузить комп. Но, перед этим, для исключения варианта, удаляю sites\all\libraries\phpmailer, чтобы потом повторить манипуляцию.
После перезагрузки сайт нормально запускается, но, тут мне выскакивает status report о том, что мне нужно обновиться. Что за черт? Смотрю страницу Status Report, а там - версия 6.20. Открываю "темы" - они снова рисуются 6.20, хотя несколько минут назад были 6.35.
Запускаю update.php - ноль реакции.
Сбросить кэш - то же самое. Я пробежался поиском по проекту - 6.20 у меня нигде нет. Значит, думаю, в базе хранится это дело. Скачиваю снова дамп.
Открываю sql в текстовом редакторе. 6.20 хранятся в таблице menu_router.
Чешу репу. В какой-то момент времени открыл раздел модулей и вижу, что недавно установленный модуль Libraries API теперь не отображается, а вместо него отображается старый - с красным кружочком. Я подумал, что может по-ошибке удалил не ту папку. Проверяю - нет, всё чисто.
Снова смотрю базу и в таблице system вижу запись про этот ненужный модуль.
Уже погуглил на эту тему и что-то не нарыл ничего. Единственно, очистил таблицы с приставкой "cache_". Мыслей у меня толковых нет. может оно и само рассосется через какое-то время. Но это ж я ковырялся на локалхосте, а как в бою такое приключится? Страшно подумать. Поэтому надо понять в чем дело.
Есть мысли?
Комментарии
1. на нормальном хостинге попробуйте обновлять, не на локали, которая у вас тормозит по понятной причине. Не на боевом сайте, а другой домен/технический адрес/поддомен сделайте.
2. вручную ничего "чистить" в бд не надо, если не понимаете. Ни к чему хорошему это ни приведет. Через админку кеш чистите или через drush (хотя откуда бы ему взяться...).
3. не надо этого - "сравниваю текущую со скачанной версией". Тупо сначала удаляете все, кроме папки sites (ну и роботс, htaccss можно старые оставить иногда), заливаете новую версию (все папки, файлы) и update.php.
4. проверяйте правильность доступа к бд в settings.php. Хуже не будет от этого.
5. бд через phpmyadmin проверить можно, нет ли чего сломаного.
Примерно так.
Да, придется экспериментами занимать.
Но мне все же интересно, что поломалось. В папке system есть запись про мой старый модуль. Значит, Друпал сканирует содержимое папки с модулями и записывает в эту таблицу список модулей. При каждом запуске должен так делать? По идее, да. Я же не через админку закидываю новый модуль, а просто в папочку ложу.
Если в ближайшее время не удастся разобраться, то попробую воспроизвести эту ситуацию и разобрать по полочкам
Список модулей генерирует при заходе на страницу модулей. Ничего доп-но запускать не надо.
Пусть будет так.
Но, сейчас физически модуля в каталоге нет, а в списке он - есть.
Раньше-то он был. И в списке был. Модуль я удалил, а в списке он остался. А остался он видимо потому, что хранится запись о нем в таблице system. А уж почему эта запись там хранится и не удаляется, я не знаю.