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

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

Описание

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

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

Решение

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

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

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

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

Результат

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

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

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

Все проекты →
Веб-разработка и IT Цены таблицей и галерея в карточку товара - правка через Excel вместо сотни карточек
Цены таблицей и галерея в карточку товара - правка через Excel вместо сотни карточек
23
Веб-разработка и IT Лендинг походного клуба: маршруты по Кавказу, Алтаю и Камчатке с подбором группы под человека
Лендинг походного клуба: маршруты по Кавказу, Алтаю и Камчатке с подбором группы под человека
22
Инженерия и Проектирование Водозаборное и водоподпорное сооружения, пруд-отстойник: планы, разрезы, узлы, спецификации
Водозаборное и водоподпорное сооружения, пруд-отстойник: планы, разрезы, узлы, спецификации
28
Веб-разработка и IT Магазин электроники на 800 тысяч товаров - товарные фиды, фильтр по характеристикам, ускорение
Магазин электроники на 800 тысяч товаров - товарные фиды, фильтр по характеристикам, ускорение
25