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**
|
3. Click **Restore**
|
||||||
4. System validates schema compatibility and restores database + files
|
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
|
## First Deployment
|
||||||
|
|
||||||
On fresh install, `/api/shopdbbackups` returns empty list - this is normal.
|
On fresh install, `/api/shopdbbackups` returns empty list - this is normal.
|
||||||
|
|||||||
Reference in New Issue
Block a user