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:
22
run_dev.py
Normal file
22
run_dev.py
Normal 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()
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user