Files
FitTrack2/FitnessSync/scratch/inspect_weight_count.py
2026-01-09 09:59:36 -08:00

50 lines
1.9 KiB
Python

from backend.src.services.postgresql_manager import PostgreSQLManager
from backend.src.utils.config import config
from backend.src.models.weight_record import WeightRecord
from backend.src.models.health_metric import HealthMetric
from sqlalchemy import func
import sys
def check_count():
print("DEBUG: Connecting to DB...", flush=True)
try:
db_manager = PostgreSQLManager(config.DATABASE_URL)
print("DEBUG: Session factory created.", flush=True)
with db_manager.get_db_session() as session:
print("DEBUG: Session active.", flush=True)
# Check WeightRecord
try:
wr_count = session.query(func.count(WeightRecord.id)).scalar()
print(f"Total WeightRecord (Legacy?) records: {wr_count}")
except Exception as e:
print(f"Error querying WeightRecord: {e}")
# Check HealthMetric (Fitbit Weight)
try:
hm_count = session.query(func.count(HealthMetric.id)).filter(
HealthMetric.metric_type == 'weight',
HealthMetric.source == 'fitbit'
).scalar()
print(f"Total HealthMetric (Fitbit Weight) records: {hm_count}")
except Exception as e:
print(f"Error querying HealthMetric: {e}")
# Also check top 5 from HealthMetric
print("\nLatest 5 HealthMetric (Fitbit Weight) records:")
latest = session.query(HealthMetric).filter(
HealthMetric.metric_type == 'weight',
HealthMetric.source == 'fitbit'
).order_by(HealthMetric.date.desc()).limit(5).all()
for r in latest:
print(f" - {r.date}: {r.metric_value} {r.unit}")
except Exception as e:
print(f"CRITICAL ERROR: {e}")
import traceback
traceback.print_exc()
if __name__ == "__main__":
check_count()