Files
fast_api_template/backend/app/core/db.py
T

35 lines
1.2 KiB
Python
Raw Normal View History

2024-03-02 05:01:59 -05:00
from sqlmodel import Session, create_engine, select
from app import crud
from app.core.config import settings
2024-03-02 05:01:59 -05:00
from app.models import User, UserCreate
engine = create_engine(str(settings.SQLALCHEMY_DATABASE_URI))
# make sure all SQLModel models are imported (app.models) before initializing DB
# otherwise, SQLModel might fail to initialize relationships properly
# for more details: https://github.com/tiangolo/full-stack-fastapi-template/issues/28
2019-05-22 13:29:24 +02:00
def init_db(session: Session) -> None:
# Tables should be created with Alembic migrations
# But if you don't want to use migrations, create
2024-02-25 21:51:56 +01:00
# the tables un-commenting the next lines
# from sqlmodel import SQLModel
2024-03-02 05:01:59 -05:00
# from app.core.engine import engine
2024-02-25 21:51:56 +01:00
# This works because the models are already imported and registered from app.models
# SQLModel.metadata.create_all(engine)
user = session.exec(
select(User).where(User.email == settings.FIRST_SUPERUSER)
).first()
if not user:
user_in = UserCreate(
email=settings.FIRST_SUPERUSER,
password=settings.FIRST_SUPERUSER_PASSWORD,
is_superuser=True,
)
2023-11-29 17:22:15 -05:00
user = crud.create_user(session=session, user_create=user_in)