Fix backup feature for local Windows development

- Add --no-reload flag to run_dev.py to prevent env var loss
- Configure SHOPDB_BACKUPS_ROOT in .env for Windows path
- Create local backups directory
- Document local dev setup in backup README
- Fix: Flask auto-reloader was spawning process without env vars
This commit is contained in:
Proudlock
2026-09-06 23:57:54 -04:00
parent 5eb5c83b23
commit 3e36b54101
2 changed files with 40 additions and 0 deletions

22
run_dev.py Normal file
View File

@@ -0,0 +1,22 @@
#!/usr/bin/env python
"""
Development server launcher for ShopDB.
Loads .env file and starts Flask development server.
"""
import os
import sys
from pathlib import Path
# Load .env BEFORE importing anything from Flask
from dotenv import load_dotenv
env_path = Path(__file__).parent / '.env'
load_dotenv(env_path)
print("Starting ShopDB Flask development server...")
print(f"DATABASE_URL: {os.environ.get('DATABASE_URL', 'NOT SET')[:60]}...")
print(f"SHOPDB_BACKUPS_ROOT: {os.environ.get('SHOPDB_BACKUPS_ROOT', 'NOT SET')}")
# Import and run Flask (--no-reload so env vars don't get lost)
from flask.cli import main as flask_main
sys.argv = ['flask', 'run', '--host=0.0.0.0', '--port=5001', '--no-reload']
flask_main()

View File

@@ -42,6 +42,24 @@ Each backup set includes:
3. Click **Restore**
4. System validates schema compatibility and restores database + files
## Local Development Setup
For local dev on Windows, configure a local backup directory:
1. Add to `.env`:
```
SHOPDB_BACKUPS_ROOT=C:/Users/YOUR_USERNAME/Documents/github/flask-shopdb/backups
```
2. Create the directory:
```bash
mkdir backups
```
3. Restart Flask
Note: Actual backup execution requires Docker (the backup container). The API can queue backups but won't execute them without the sidecar container.
## First Deployment
On fresh install, `/api/shopdbbackups` returns empty list - this is normal.