К содержанию

Откат сайта на предыдущий деплой

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

Обновлено 27 октября 2026 2 мин чтения

Откат возвращает код сайта к коммиту одного из прошлых деплоев. Для него не нужно создавать новый коммит в репозитории. Откат доступен на тарифе с Git-деплоем.

Как откатить

  1. Откройте сайт → Код и деплой → Деплой.
  2. В таблице Деплои найдите успешный запуск, который хотите вернуть. Кнопка Откат есть у всех успешных запусков, кроме самого свежего.
  3. В окне Откат до с коротким хешем проверьте коммит, автора и сообщение.
  4. При необходимости поправьте Скрипт отката. Кнопка Сбросить к значению по умолчанию вернёт стандартный.
  5. Нажмите Откат. Окно закроется, а ход отката появится в Живом логе деплоя.

В скрипте отката {COMMIT} заменяется на хеш целевого коммита, поэтому вставляйте этот маркер вместо хеша.

Что делает стандартный скрипт для Laravel

Скрипт переводит сайт в режим обслуживания, переключает код на выбранный коммит, ставит зависимости Composer, собирает фронтенд, выполняет artisan migrate --force, пересобирает кеш и снимает режим обслуживания.

Чего откат не делает

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

Откат на сайтах с деплоем без простоя

Если включён деплой без простоя, откат переключает симлинк current на сохранённый релиз. Откатиться можно только к релизу, который ещё хранится. Их число задаётся в настройках, см. статью «Деплой без простоя».

Если не получается

  • Скрипт отката не выполнен: откройте лог деплоя и найдите первую ошибку в выводе.
  • Для коммита не найден релиз: сайт на деплое без простоя, а нужного релиза уже нет. Увеличьте число хранимых релизов для будущих деплоев.
  • Кнопка Откат неактивна: на сайте уже выполняется другая задача. Дождитесь её окончания.
Статья помогла?
Спасибо за оценку!