fras-backend / clear_data.py
pranaykumar2005's picture
feat: reset clears all users except shyamala
49578c8
Raw
History Blame Contribute Delete
1.4 kB
import asyncio
from database import engine, AsyncSessionLocal
from sqlalchemy import text
from models import Base, Subject, Attendance, Alert, HOD
from routers.auth import get_password_hash
async def clear_data():
async with AsyncSessionLocal() as session:
# Clear attendance
await session.execute(text("DELETE FROM face_embeddings"))
await session.execute(text("DELETE FROM alerts"))
await session.execute(text("DELETE FROM attendance"))
await session.execute(text("DELETE FROM students"))
await session.execute(text("DELETE FROM faculty"))
await session.execute(text("DELETE FROM hod WHERE email != 'shyamala@gmail.com'"))
await session.execute(text("UPDATE subjects SET total_classes = 0, faculty_name = NULL"))
# Check if shyamala exists
from sqlalchemy.future import select
result = await session.execute(select(HOD).where(HOD.email == 'shyamala@gmail.com'))
if not result.scalars().first():
hod = HOD(name="Shyamala", email="shyamala@gmail.com", password_hash=get_password_hash("1"), department="CSE")
session.add(hod)
print("Added new HOD shyamala@gmail.com")
await session.commit()
print("Successfully cleared attendance, alerts, reset subjects, and added HOD.")
if __name__ == "__main__":
asyncio.run(clear_data())