mirror of
https://github.com/narrrl/holy-flavor-rater.git
synced 2026-11-03 16:41:27 +01:00
38 lines
1.0 KiB
Bash
Executable File
38 lines
1.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# This script creates a full snapshot of the database and user media.
|
|
# Best run as a daily cron job.
|
|
|
|
ROOT_DIR=$(git rev-parse --show-toplevel)
|
|
cd "$ROOT_DIR"
|
|
|
|
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
|
|
BACKUP_NAME="full_snapshot_$TIMESTAMP"
|
|
TEMP_DIR="backend/backups/$BACKUP_NAME"
|
|
FINAL_DEST="backend/backups"
|
|
|
|
echo "========================================"
|
|
echo " Starting Full Project Backup... "
|
|
echo "========================================"
|
|
|
|
mkdir -p "$TEMP_DIR"
|
|
|
|
# 1. Run the database backup command
|
|
echo "Backing up database..."
|
|
docker exec holy-backend python manage.py backup_db --output "/app/backups/$BACKUP_NAME/db.sqlite3"
|
|
|
|
# 2. Copy the media folder
|
|
echo "Backing up media..."
|
|
cp -r backend/media "$TEMP_DIR/media"
|
|
|
|
# 3. Create compressed archive
|
|
echo "Compressing..."
|
|
tar -czf "$FINAL_DEST/$BACKUP_NAME.tar.gz" -C "backend/backups" "$BACKUP_NAME"
|
|
|
|
# 4. Cleanup temp folder
|
|
rm -rf "$TEMP_DIR"
|
|
|
|
echo ""
|
|
echo "✅ Backup complete: $FINAL_DEST/$BACKUP_NAME.tar.gz"
|
|
echo "========================================"
|