arbret/backend/seed.py
2025-12-18 22:42:32 +01:00

38 lines
1.1 KiB
Python

"""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())