my-recipes/backend/WEEKLY_BACKUP_SETUP.md
2025-12-21 03:43:37 +02:00

2.8 KiB

Weekly Backup Setup - Windows Task Scheduler

This guide will help you set up automatic weekly backups of your database.

Setup Instructions

1. Create Batch Script

Create a file run_backup.bat in the backend folder:

@echo off
cd /d "%~dp0"
python backup_db.py >> backup.log 2>&1

2. Open Task Scheduler

  1. Press Win + R
  2. Type taskschd.msc
  3. Press Enter

3. Create New Task

  1. Click "Create Task" (not "Create Basic Task")
  2. In General tab:
    • Name: Recipe DB Weekly Backup
    • Description: Automatic weekly database backup to Cloudflare R2
    • Select "Run whether user is logged on or not"
    • Check "Run with highest privileges"

4. Configure Trigger

  1. Go to Triggers tab
  2. Click "New..."
  3. Configure:
    • Begin the task: On a schedule
    • Settings: Weekly
    • Recur every: 1 weeks
    • Days: Select Sunday (or your preferred day)
    • Time: 02:00:00 (2 AM)
    • Check "Enabled"
  4. Click OK

5. Configure Action

  1. Go to Actions tab
  2. Click "New..."
  3. Configure:
    • Action: Start a program
    • Program/script: C:\Path\To\backend\run_backup.bat (Replace with your actual path)
    • Start in: C:\Path\To\backend\ (Replace with your actual path)
  4. Click OK

6. Additional Settings

  1. Go to Conditions tab:

    • Uncheck "Start the task only if the computer is on AC power"
  2. Go to Settings tab:

    • Check "Run task as soon as possible after a scheduled start is missed"
    • If the task fails, restart every: 10 minutes
    • Attempt to restart up to: 3 times
  3. Click OK

7. Enter Password

  • You'll be prompted to enter your Windows password
  • This allows the task to run even when you're not logged in

Verify Setup

Test the Task

  1. In Task Scheduler, find your task
  2. Right-click → "Run"
  3. Check backend/backup.log for results

View Scheduled Runs

  • In Task Scheduler, select your task
  • Check the "History" tab to see past runs

Troubleshooting

Task doesn't run

  • Check Task Scheduler → Task History for errors
  • Verify Python is in system PATH
  • Try running run_backup.bat manually first

No log file created

  • Check file permissions in backend folder
  • Verify the "Start in" path is correct

Backup fails

  • Check backend/backup.log for error messages
  • Verify database credentials in .env
  • Verify R2 credentials in .env
  • Test by running python backup_db.py manually

Change Backup Schedule

  1. Open Task Scheduler
  2. Find "Recipe DB Weekly Backup"
  3. Right-click → Properties
  4. Go to Triggers tab
  5. Edit the trigger to change day/time
  6. Click OK

Disable Automatic Backups

  1. Open Task Scheduler
  2. Find "Recipe DB Weekly Backup"
  3. Right-click → Disable

View Backup Log

Check backend/backup.log to see backup history:

cd backend
type backup.log

Or open it in Notepad.