Дмитрий Гапонов › Nautisss
Сайты руками, боты и парсеры на Python, чертежи в AutoCAD
Рейтинг
5 442
№ 268 в каталоге
Отзывы
Профессионализм
10/10
Коммуникация
10 /10
На сайте с
2025 года
Юридический статус
Самозанятый

Обновление CMS живого сайта с версии 2017 года, с копией и постраничной сверкой

Описание

Сайт на MODX стоял на сборке 2017 года с открытыми дырами. Заказчица хотела переехать на актуальную версию, но сайт живой, с магазином, двадцатью пятью дополнениями и тремя гигабайтами файлов, и ронять его нельзя.

Хостинг добавил условий. Создавать вторую базу запрещено, системный интерпретатор новее того, на котором крутится сайт, и запускать обновление надо строго старым. Доступа по FTP не было, всё шло через свой канал в админке. Отдельно висел риск - на этом же сайте параллельно ставилась защита форм, и обновление могло унести её с собой. Срок двое суток, в цену входила починка дополнений, если после переезда что-то отвалится.

Решение

Начал с бэкапа и с проверки бэкапа, а не с веры в него. Дамп базы и два архива файлов легли за пределы публичной папки. Дамп проверил по числу таблиц и по строкам - семьдесят пять таблиц с данными, сто одиннадцать тысяч строк, вставок в дампе ровно столько же, расхождений ноль. Архивы прогнал на целостность и сверил число записей с живым деревом, разошлась одна строка и та объяснима. Отдельно убедился, что внутри лежат конфиги, точка входа, правила сервера и файлы админки.

Вторую базу завести нельзя, поэтому копия сайта пошла на том же сервере с другим префиксом таблиц. На копии прогнал обновление ядра, потом руками обошёл дополнения и магазин.

Откат расписал по шагам до команд - вернуть файлы, залить базу, очистить кеш и прогнать проверку. Ничего не удалял, только переименовывал.

После переключения прошёл все сто шестьдесят одну страницу двумя разными проверками. Первая искала следы ошибок интерпретатора и невыполненные теги шаблонизатора в теле страниц, вторая сверяла набор страниц со слепком, снятым до обновления. Заодно перепроверил, что защита форм пережила переезд - сниппеты, таблица токенов и правки в кусках разметки оказались на месте.

Результат

Сто шестьдесят одна страница из ста шестидесяти одной отдала код 200, ни одной ошибки и ни одного таймаута. Следов ошибок интерпретатора и невыполненных тегов ноль. Набор страниц совпал со слепком до обновления, ничего не пропало и не добавилось. Вход в админку проходит, версия в ней новая. Защита форм жива, живая проверка обеих форм прошла. Тестовые записи из базы убраны, число строк вернулось к исходному. Заказ принят.

Оценили проект:

Другие проекты

Все проекты →
Веб-разработка и IT Сбор юзернеймов из комментариев соцсети по ключевым словам с выгрузкой в Google-таблицу
Сбор юзернеймов из комментариев соцсети по ключевым словам с выгрузкой в Google-таблицу
9
Инженерия и Проектирование Раздел КР жилого дома: свайное поле с ростверками, кровля, стройгенплан и календарный график
Раздел КР жилого дома: свайное поле с ростверками, кровля, стройгенплан и календарный график
8
Веб-разработка и IT Сайт жилого комплекса с расчётом инсоляции: показываем, сколько минут солнца попадёт в каждую квартиру
Сайт жилого комплекса с расчётом инсоляции: показываем, сколько минут солнца попадёт в каждую квартиру
8
Инженерия и Проектирование Водоём-накопитель на топосъёмке: план, разрез дамбы, узлы труб и ведомость отсыпки
Водоём-накопитель на топосъёмке: план, разрез дамбы, узлы труб и ведомость отсыпки
6