Skip to content

OPS-4: Бэкап и восстановление PostgreSQL #97

Description

@ii-reviewer

Цель: иметь воспроизводимый бэкап БД и проверенную процедуру восстановления — потеря тома postgres не должна означать потерю данных.
Зависимость:

Что сделать

  • Добавить в docker-compose.yml сервис-бэкапер (например, лёгкий cron-контейнер), который по расписанию запускает pg_dump в смонтированный том:
    pg_dump -Fc -h postgres -U "$POSTGRES_USER" "$POSTGRES_DB" \
      > /backups/wh-$(date +%F-%H%M).dump
  • Формат -Fc (custom), ретеншн N последних копий — старые удалять.
  • Написать рунбук восстановления в docs/ (pg_restore --clean --if-exists -d ...), с шагами на чистый том.
  • Стретч: реально проверить restore в пустую БД/том и убедиться в согласованности дампа (snapshot в одной транзакции, без полупустых FK). НЕ описывать PITR/WAL-archiving — достаточно логических дампов.

Acceptance criteria

  • Бэкап-контейнер по расписанию создаёт .dump в томе бэкапов.
  • Хранится не более N копий, лишние удаляются.
  • Рунбук позволяет поднять данные в чистый том из дампа, приложение стартует на восстановленной БД.
  • Восстановленная БД проходит flyway validate и содержит ожидаемые строки.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions