"""Seed the database with a dev user.""" import asyncio import os from sqlalchemy import select from database import engine, async_session, Base from models import User from auth import get_password_hash DEV_USER_EMAIL = os.environ["DEV_USER_EMAIL"] DEV_USER_PASSWORD = os.environ["DEV_USER_PASSWORD"] async def seed(): async with engine.begin() as conn: await conn.run_sync(Base.metadata.create_all) async with async_session() as db: result = await db.execute(select(User).where(User.email == DEV_USER_EMAIL)) user = result.scalar_one_or_none() if user: user.hashed_password = get_password_hash(DEV_USER_PASSWORD) await db.commit() print(f"Updated dev user: {DEV_USER_EMAIL} / {DEV_USER_PASSWORD}") else: user = User( email=DEV_USER_EMAIL, hashed_password=get_password_hash(DEV_USER_PASSWORD), ) db.add(user) await db.commit() print(f"Created dev user: {DEV_USER_EMAIL} / {DEV_USER_PASSWORD}") if __name__ == "__main__": asyncio.run(seed())