- Добавлен в
Gemfile:gem "backup", "~> 5.0"
config/backup.rb- основная конфигурация Backup gemconfig/sidekiq.yml- обновлен с расписанием бэкапа
app/jobs/database_backup_job.rb- Sidekiq job для автоматического бэкапаlib/tasks/backup.rake- Rake tasks для управления бэкапами
docs/backup/README.md- обзор системы бэкапаdocs/backup/QUICK_START.md- быстрый стартdocs/backup/BACKUP_GEM_SETUP.md- полная документация
bundle installУбедитесь, что в Dockerfile установлен sqlite3 (уже есть на строке 16):
RUN apt-get update -qq && \
apt-get install --no-install-recommends -y curl libjemalloc2 libvips sqlite3 && \
rm -rf /var/lib/apt/lists /var/cache/apt/archives# Полный деплой с пересборкой образа
kamal deploy
# Или только перезапуск если образ уже собран
kamal app boot# Запустите тестовый бэкап
kamal app exec 'bundle exec rake backup:run'
# Проверьте созданные бэкапы
kamal app exec 'bundle exec rake backup:list'Вы должны увидеть что-то вроде:
Available backups in /backups:
stackoverflow_clone_db.tar.gz (2.45 MB) - 2025-01-20 14:30:15
Откройте Sidekiq Web UI:
http://your-server-ip:3000/sidekiq/cron
Вы должны увидеть задачу database_backup с расписанием 0 2 * * * (каждый день в 2:00).
- Прочитайте документацию:
docs/backup/README.md - Настройте email уведомления (опционально)
- Настройте хранение на S3 (рекомендуется для production)
- Протестируйте восстановление из бэкапа
# Ручной запуск бэкапа
kamal app exec 'bundle exec rake backup:run'
# Список бэкапов
kamal app exec 'bundle exec rake backup:list'
# Очистка старых бэкапов
kamal app exec 'bundle exec rake backup:clean'
# Просмотр логов
kamal app logs | grep DatabaseBackupJob- Расписание: Каждый день в 2:00 ночи
- Хранение: Последние 7 бэкапов
- Место: Docker volume
stackoverflow_clone_backups→/backups - Сжатие: Gzip (уровень 6)
- Разбивка: Файлы > 250 MB разбиваются на части
Если возникает ошибка при установке гема backup, попробуйте:
bundle update backup- Проверьте, что Sidekiq запущен:
docker ps | grep sidekiq- Проверьте логи:
kamal app logs | grep -i backup- Запустите вручную для диагностики:
kamal app exec 'bundle exec rake backup:run'Проверьте права доступа:
kamal app exec 'ls -la /backups'Полная документация находится в docs/backup/BACKUP_GEM_SETUP.md.