Сайт ↗
Разделы документации
Эксплуатация · 0.8.1

Резервные копии и восстановление данных

Как создать копию БД и изображений, найти её и восстановить. Отдельно — отключённый backup и перенос на новый сервер.

На этой странице

Backup сохраняет БД, изображения и сведения о релизе в одной точке восстановления. Для ручного переноса dev используйте дамп и архив файлов.

1. Проверьте, включён ли backup

В Deployment → Deployment environments откройте профиль и выберите Backup destination. В JSON это значение backup.kind:

Значение Что происходит
none Автоматических копий нет; backup и restore недоступны
local Копии хранятся в <root>/backups на сервере
s3 Копии отправляются в отдельный приватный bucket/prefix

Для prod-local каталог backup вычисляется из пути проекта и имени профиля. Для серверного Local directory путь задаётся в профиле UI. Local-копия на том же диске не защищает от потери машины — сохраняйте её также вне сервера. Backup и рабочие изображения должны иметь разные S3 bucket/prefix.

Если выбран None, сначала включите Local/S3 через reconfigure. Смена места хранения не переносит старые точки; отключение не удаляет их.

2. Создайте точку

Работайте из корня проекта: Source — на VPS под пользователем deployment, Archive/Registry — на управляющем компьютере, prod-local — на своём компьютере.

bash ./deploy/control backup --env production --confirm production
bash ./deploy/control status --env production --json

Для prod-local замените production на local. На время копирования контроллер остановит запись приложения и очистку изображений, затем вернёт приложение в работу. Собственные фоновые задачи и SQL-запись остановите отдельно.

Сохраните ID точки из вывода или lastBackup в status. null означает, что подтверждённой копии в статусе нет. Для local точки лежат в <backup.root>/<project>/<environment>/points/<point-id>/; для S3 смотрите выбранный prefix. Команды backup list сейчас нет.

3. Восстановите нужную точку

Restore вернёт данные на момент копии: более поздних записей в восстановленной БД не будет. Если нужны и текущие данные, сначала сохраните их отдельной точкой.

bash ./deploy/control restore --env production \
  --recovery-point POINT_ID --confirm-restore production

bash ./deploy/control status --env production --json

Подставьте ID полной точки. Restore использует --confirm-restore, а не --confirm. Контроллер подготовит новую БД и медиакаталог, проверит их и переключит приложение. Прежние данные сохранятся. После запуска проверьте записи, картинки и интеграции, прежде чем что-либо удалять.

Если restore прерван, начните со status/reconcile и восстановления операции. Не запускайте ещё один restore поверх незавершённого.

Что сохранить вместе с backup

Точка включает PostgreSQL, media-файлы и размеры, сведения о релизе, контрольные суммы и отметку завершения. Частичная точка не подходит для restore. Хранение оставляет семь дневных и четыре недельных точки по UTC, защищает незавершённые операции и не удаляет последнюю рабочую копию из-за неудачного backup.

Отдельно сохраните секреты, приватные ключи и доступ SSH — их в backup нет. Также нужны точные образы релиза: Registry сохраняет их в registry, Source/Archive — в image archive. Проверенные архивы сервера лежат в <root>/image-archives; это отдельные файлы, не часть backup-точки.

Восстановление на новом сервере

Подготовьте сервер, профиль окружения, секреты и доступ к копиям по инструкции развёртывания. Сохраните исходные project/environment, по которым находятся точки. Предоставьте релиз и его образы, выполните provision, затем restore. Для Source нужен checkout на VPS; Archive/Registry управляются через SSH.

Это сценарий штатной backup-точки. Для импорта dev-дампа сначала требуется успешный первый deploy. Не создавайте current/reservation-файлы вручную. Периодически проверяйте restore в отдельном окружении: наличие файлов само по себе не подтверждает возможность восстановления.

Команда Результат
backup Новая копия БД и медиа
restore Данные из выбранной копии
rollback Предыдущий код; данные и миграции остаются