Webvise
Все материалы
Поддержка сайтов4 мин чтения

Сайт сломался после обновления CMS или модулей: порядок действий

Как безопасно локализовать конфликт после обновления, выбрать между откатом и исправлением и не потерять изменения или свежие данные пользователей.

Иван Седунов · Технический эксперт по веб-поддержке
Сайт сломался после обновления CMS или модулей: порядок действий

После обновления сайт может показать белый экран, ошибку 500, потерять верстку или перестать принимать заявки. Первая реакция часто — срочно вернуть старые файлы. Но полный откат без проверки способен удалить новые заказы, обращения и изменения контента. Сначала нужно понять, что именно обновилось и затронута ли база данных.

Остановите дальнейшие изменения

Пока причина неизвестна, не запускайте следующие обновления и не очищайте все кэши подряд. Ограничьте доступ к административной части для лишних пользователей и зафиксируйте:

  • время обновления;
  • список измененных компонентов и версии;
  • текст ошибки;
  • журналы приложения и веб-сервера;
  • состояние фоновых задач;
  • наличие заказов и заявок после обновления;
  • время последней проверенной резервной копии.

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

Определите масштаб проблемы

Проверяем не только главную страницу:

  1. Административную панель.
  2. Несколько типов публичных страниц.
  3. Авторизацию и личный кабинет.
  4. Формы и отправку почты.
  5. Корзину и оформление заказа.
  6. Интеграции и фоновые обмены.
  7. Планировщик задач.

Если сломан только внешний вид, вероятны конфликт стилей, сборки или кэша. Ошибки сохранения данных указывают на код, схему базы, права или несовместимость API.

Найдите первый конфликт

Смотрим журналы с момента начала обновления. Типичные признаки:

  • вызов удаленного или переименованного метода;
  • несовместимая версия языка или runtime;
  • отсутствующий класс или пакет;
  • ошибка миграции базы;
  • повторное объявление функции;
  • изменение структуры шаблона;
  • неверные права на новые файлы;
  • устаревший скомпилированный кэш.

Важно найти первую причину. Последующие сообщения часто являются следствиями одного сбоя.

Когда достаточно точечного исправления

Не всегда нужно откатывать весь релиз. Точечное исправление предпочтительно, если:

  • обновление закрывает критичную уязвимость;
  • база уже получила новые данные;
  • конфликт локализован в одном модуле или шаблоне;
  • старый компонент несовместим с текущим окружением;
  • можно быстро проверить исправление в копии проекта.

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

Когда нужен откат

Откат оправдан, если причина не локализуется быстро, критичный сценарий полностью недоступен или обновление изменило большое число компонентов одновременно. Безопасная последовательность:

  1. Сохранить текущее аварийное состояние отдельно.
  2. Определить, какие данные появились после резервной копии.
  3. Восстановить файлы в отдельное окружение.
  4. Проверить совместимость со свежей базой.
  5. При необходимости перенести новые транзакционные данные.
  6. Проверить критичные сценарии.
  7. Только после этого переключить публичный сайт.

Нельзя бездумно заменять текущую базу вчерашней копией на магазине, в CRM или сервисе с пользовательскими обращениями.

Почему простое отключение модуля может не помочь

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

Для CMS-проектов также учитывают обязательные зависимости: отключение одного компонента может остановить формы, оплату или авторизацию.

Проверка после восстановления

Страница открылась — это еще не завершение. Нужен короткий регрессионный набор:

  • главная и ключевые посадочные;
  • формы и уведомления;
  • вход и восстановление пароля;
  • создание заказа или заявки;
  • обмен с внешними системами;
  • мобильная версия;
  • ошибки браузера и сервера;
  • фоновые задачи.

После проверки фиксируются рабочие версии и причина конфликта. Проблемный компонент не должен снова обновиться автоматически до разбора.

Как предотвращать такие сбои

  • не обновлять production без свежей резервной копии;
  • не смешивать обновление CMS, десятка модулей и сервера в один релиз;
  • иметь тестовую копию или staging;
  • хранить код и конфигурацию в системе версий;
  • вести журнал релизов;
  • проверять критичные сценарии после каждого изменения;
  • подключить мониторинг сайта;
  • включать автоматические обновления только там, где риск понятен.

Регулярное техническое обслуживание сайта не исключает ошибки обновлений, но делает их управляемыми: известно исходное состояние, есть резервная копия, понятен откат и определен набор проверок.

Частые вопросы

Можно ли отключить все модули и включать их по одному?

На тестовой копии это рабочий способ локализации. На production массовое отключение способно остановить оплату, формы, авторизацию и фоновые задачи. Сначала фиксируют зависимости и делают контрольную копию, затем отключают компоненты точечно.

Что важнее восстанавливать: файлы или базу?

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

Почему после отката сайт все равно показывает ошибку?

Причина может оставаться в базе, кэше, сгенерированных файлах, конфигурации runtime или правах доступа. Также CDN способен продолжать отдавать аварийную версию. Откат должен учитывать все слои релиза, а не только каталог модуля.

Стоит ли оставлять автоматические обновления включенными?

Для небольших некритичных компонентов — иногда да. Для платежей, форм, интеграций и крупных версий CMS безопаснее управляемый релиз с резервной копией и проверкой. Решение принимается по последствиям отказа, а не по удобству одной кнопки.

Нужно восстановить сайт после неудачного обновления?

Зафиксируем состояние, найдем конфликт и выберем безопасный путь — точечное исправление или контролируемый откат.

Поддержка сайтов

Приложение Webvise

Личный кабинет всегда под рукой

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

Задачи, сообщения, отчеты и мониторинг в одном личном кабинете
Push-уведомления по важным событиям проекта
Удобный доступ с iPhone и Android без лишней навигации
Открыть личный кабинет

Установка для iOS и Android доступна клиентам Webvise в настройках личного кабинета.

Чат и отправка сообщений в приложении Webvise
Мониторинг ресурсов в приложении Webvise
Профиль клиента в приложении Webvise
iOS/AndroidPushЧат
Сайт сломался после обновления: что делать