Phase 3.1: Enhanced Chore Logging and Reporting System

This commit is contained in:
2026-02-05 12:33:51 +11:00
commit e3cae7bfbb
178 changed files with 30105 additions and 0 deletions

79
backend/diagnose.py Normal file
View File

@@ -0,0 +1,79 @@
"""Diagnostic script to check database connection and configuration."""
import sys
import os
from pathlib import Path
print("="*70)
print("FAMILY HUB - DATABASE DIAGNOSTIC")
print("="*70)
print()
# Add parent directory to path
sys.path.insert(0, str(Path(__file__).parent))
print(f"Current Working Directory: {os.getcwd()}")
print(f"Script Location: {Path(__file__).parent.absolute()}")
print()
try:
from app.core.config import settings
from app.core.database import engine, SessionLocal
from app.models.user import User
print("✓ Successfully imported app modules")
print()
print("DATABASE CONFIGURATION:")
print(f" DATABASE_URL: {settings.DATABASE_URL}")
print(f" Database Engine: {engine.url}")
print()
# Check if database file exists
db_path = str(engine.url).replace("sqlite:///", "")
if db_path.startswith("./"):
db_path = os.path.join(os.getcwd(), db_path[2:])
print(f" Resolved DB Path: {db_path}")
print(f" Database Exists: {os.path.exists(db_path)}")
if os.path.exists(db_path):
file_size = os.path.getsize(db_path)
print(f" Database Size: {file_size:,} bytes")
print()
# Try to connect and query
print("ATTEMPTING DATABASE CONNECTION:")
db = SessionLocal()
try:
user_count = db.query(User).count()
print(f" ✅ Connection successful!")
print(f" Total users in database: {user_count}")
print()
if user_count > 0:
print("USERS IN DATABASE:")
users = db.query(User).all()
for user in users:
print(f" - {user.username} ({user.full_name})")
print(f" Email: {user.email}")
print(f" Admin: {user.is_admin}, Active: {user.is_active}")
print(f" Password Hash: {user.hashed_password[:50]}...")
print()
else:
print(" ⚠️ No users found in database!")
print(" You may need to run: python init_db.py")
except Exception as e:
print(f" ❌ Database connection failed: {e}")
import traceback
traceback.print_exc()
finally:
db.close()
except Exception as e:
print(f"❌ Failed to import modules: {e}")
import traceback
traceback.print_exc()
print()
print("="*70)