import sys import os # Add the current directory to sys.path to ensure we can import 'backend' sys.path.append(os.getcwd()) from backend.database import SessionLocal, engine from backend import models def dump_table(session, model, table_name): print(f"\n{'='*20} {table_name} {'='*20}") records = session.query(model).all() if not records: print("(No data found)") return # Get column names columns = [c.name for c in model.__table__.columns] # Calculate widths for nice formatting (simple approach) widths = {col: len(col) for col in columns} for r in records: for col in columns: val = str(getattr(r, col)) widths[col] = max(widths[col], len(val)) # Header header = " | ".join(f"{col:<{widths[col]}}" for col in columns) print(header) print("-" * len(header)) # Rows for r in records: row = " | ".join(f"{str(getattr(r, col)):<{widths[col]}}" for col in columns) print(row) print(f"Total: {len(records)} records") def main(): db = SessionLocal() try: dump_table(db, models.User, "Users") dump_table(db, models.Challenge, "Challenges") dump_table(db, models.Tracking, "Tracking Logs") dump_table(db, models.DailyHealthMetrics, "Daily Health Metrics") dump_table(db, models.WorkoutSession, "Workout Sessions") finally: db.close() if __name__ == "__main__": main()