Оформление
Откат версии
Проверьте серверный комплект
Команды rollback и history относятся к локальному кандидату нового установщика. Их нельзя считать доступными в действующем комплекте без подтверждения. Сначала получите проверенный комплект и убедитесь, что история версий ведётся именно для этой установки; иначе не выполняйте этот сценарий. Применимость инструкции.
Откат переключает приложение на ранее успешно работавший образ при доказанной совместимости текущей схемы. Он не возвращает данные к состоянию резервной копии и не отменяет миграции. Решение принимает оператор после проверки совместимости релизов и изменений данных.
Откат или восстановление — что выбрать
| Ситуация | Что делать |
|---|---|
| Новая версия работает, но обнаружена ошибка; старый образ совместим с текущими данными | Рассмотреть откат по шагам ниже |
| Удалены или испорчены данные | Откат образа их не вернёт. Подготовить восстановление резервной копии в отдельную установку |
| Изменилась схема базы или совместимость неизвестна | Не пробовать старый образ наугад. Проверить восстановление копии до обновления |
| После обновления приложение не запускается | Сначала сохранить журналы. Штатная команда отката требует работающего приложения и не является аварийным ремонтом |
Например, возврат вчерашней версии приложения сам по себе не возвращает вчерашние заявки. А восстановление вчерашней копии не включает записи, созданные сегодня: их судьбу нужно согласовать до переключения пользователей.
Когда команда разрешена
Должны одновременно выполняться все условия:
- Целевая версия зарегистрирована, её неизменяемый образ доступен, инфраструктурный контракт точно совпадает с установленным комплектом.
- В локальной истории есть запись
readyдля этого образа, включая допустимую исходную записьbaseline. - Список версий и контрольных сумм миграций в этой записи точно совпадает с текущим содержимым
ndesk_pg_migrations. - Приложение работает, а создание новой проверенной копии доступно.
- Оператор отдельно подтвердил совместимость приложения и данных.
Совпадение истории миграций — необходимая защита, но оно не доказывает всю смысловую совместимость данных. Изменение формата значений, внешних сообщений или логики релиза может потребовать отдельной проверки даже без новой миграции.
sh
cd /opt/ngensia/deploy
sh ngensia.sh history
sh ngensia.sh backup-status
sh ngensia.sh rollback PREVIOUS_VERSION --confirm-compatible
sh ngensia.sh status
sh ngensia.sh historyЗамените PREVIOUS_VERSION зарегистрированной версией. Флаг --confirm-compatible означает принятое оператором решение, а не отключение встроенных проверок. Как и обновление, откат сначала создаёт новую копию с остановкой app, затем переключает образ и проверяет готовность.
Если откат отклонён
При несовпадении схемы или отсутствии успешной истории команда останавливается. Не исправляйте вручную журнал миграций, контрольные суммы и историю, чтобы пройти проверку. Если app остановлен после неудачного обновления, штатный rollback также не является универсальной аварийной командой: он требует работающего приложения.
В этих случаях подготовьте восстановление копии до обновления в новую установку. Отдельно оцените изменения, появившиеся после копии, и согласуйте допустимую потерю данных. Встроенного PITR и слияния новых записей с восстановленной базой нет.
После успешного переключения проверьте вход, нужные записи, вложения и интеграции. Зафиксируйте причину возврата и результаты приёмки, прежде чем снова планировать обновление.