60 lines
1.6 KiB
Python
60 lines
1.6 KiB
Python
#!/usr/bin/env python
|
|
"""
|
|
Backend server startup script for Windows
|
|
Provides better error reporting than running main.py directly
|
|
"""
|
|
import sys
|
|
import os
|
|
import uvicorn
|
|
|
|
# Add backend directory to path
|
|
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
|
|
|
|
if __name__ == "__main__":
|
|
print("=" * 60)
|
|
print("Wedding Guest List API Server")
|
|
print("=" * 60)
|
|
|
|
print("\n[1] Initializing database...")
|
|
try:
|
|
from database import engine
|
|
import models
|
|
models.Base.metadata.create_all(bind=engine)
|
|
print("[OK] Database initialized")
|
|
except Exception as e:
|
|
print(f"[ERROR] Database error: {e}")
|
|
sys.exit(1)
|
|
|
|
print("\n[2] Importing FastAPI app...")
|
|
try:
|
|
from main import app
|
|
print("[OK] FastAPI app imported")
|
|
except Exception as e:
|
|
print(f"[ERROR] App import error: {e}")
|
|
import traceback
|
|
traceback.print_exc()
|
|
sys.exit(1)
|
|
|
|
print("\n[3] Starting Uvicorn server...")
|
|
print(" URL: http://localhost:8000")
|
|
print(" Docs: http://localhost:8000/docs")
|
|
print(" ReDoc: http://localhost:8000/redoc")
|
|
print("\nPress Ctrl+C to stop the server")
|
|
print("-" * 60)
|
|
|
|
try:
|
|
uvicorn.run(
|
|
app,
|
|
host="0.0.0.0",
|
|
port=8000,
|
|
log_level="info",
|
|
access_log=True,
|
|
)
|
|
except KeyboardInterrupt:
|
|
print("\n\nServer stopped by user")
|
|
except Exception as e:
|
|
print(f"\n[ERROR] Server error: {e}")
|
|
import traceback
|
|
traceback.print_exc()
|
|
sys.exit(1)
|