Обновил Эгею до v3788 (получилось не сразу)
Обновление Эгеи работает просто: заменяешь файлы и движок сам обновляет нужное под капотом.
У меня так почему-то не сработало. возможно у меня была какая-то слишком старая версия. Апдейт зависал и блог просто не открывался.
Раньше я просто забивал на это и жил со старой версией. Но теперь захотелось разобраться. Нашёл, что Эгея пишет лог действий в папке user/logs. Видел, что там она ищет в таблице несуществующий столбец:
Unknown column 'SubsetID' in 'where clause'
Видимо, в какой-то момент поменялась структура базы данных: в e2BlogActions пропала колонка HitCount, осталась только ReadCount; и во всех таблицах добавилась колонка SubsetID.
Я пробовал по-разному её обновить и в итоге (вроде) получилось.
Решение не идеальное — пока не понял, как восстановить умный эгеешный поиск Rose (остался только родной полнотекстовый от самого MySQL); плюс пропала статистика напопленных просмотров — но она и так была весьма куцей — почему-то только за последние две недели. Не могу исключать, что могло ещё что-то сломаться под капотом.
Обновление в итоге случилось. Записал порядок своих действий:
сделал бэкапы файлов и базы данных — с этим можно в любой момент откатиться назад (что я и делал несколько раз :—)
- поднял рядом текующую версию базы данных, чтобы потом смотреть чем она отличается от новой и ходить туда SQL-запросами за старыми данными;
- полностью удалил текущую базу данных со всеми таблицами;
- обновил папки Эгеи и запустил переустановку по официальному гайду;
- создал новый пост, чтобы движок создал себе базу данных;
- удалил строки об этом новом тестовом посте из таблиц, чтобы не занимать уникальные индексы
TRUNCATE TABLE e2BlogAliases;
TRUNCATE TABLE e2BlogNotes;
- накатил в базу данных назад свои данные. Автоматическое восстановление не работало из-за таблиц e2BlogActions и e2BlogComments, поэтому пришлось перекидывать данные по каждой таблице отдельно — здесь пригодилась копия базы данных из первого пункта и Jupyter ноутбук с Pandas :—)
- после такого обновления не работал поиск по блогу:
добавилвернул возможность полнотекстового поиска в MySQL:
ALTER TABLE e2BlogNotes ADD FULLTEXT(Title, Text);