from sqlalchemy.orm import Session from app import crud, schemas from app.db import base # noqa: F401 # make sure all SQL Alchemy models are imported (app.db.base) before initializing DB # otherwise, SQL Alchemy might fail to initialize relationships properly # for more details: https://github.com/tiangolo/full-stack-fastapi-postgresql/issues/28 def init_db(db: Session) -> None: # Tables should be created with Alembic migrations # But if you don't want to use migrations, create # the tables uncommenting the next line # Base.metadata.create_all(bind=engine) # Create a superuser if it doesn't exist user = crud.user.get_by_email(db, email="admin@example.com") if not user: user_in = schemas.UserCreate( email="admin@example.com", username="admin", password="adminpassword", is_superuser=True, ) crud.user.create(db, obj_in=user_in)