You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
21 lines
523 B
Python
21 lines
523 B
Python
# backend/app/db.py
|
|
from sqlmodel import Session, SQLModel, create_engine
|
|
|
|
from .config import get_settings
|
|
|
|
settings = get_settings()
|
|
# SQLite + FastAPI: check_same_thread=False 필요
|
|
connect_args = (
|
|
{"check_same_thread": False} if settings.database_url.startswith("sqlite") else {}
|
|
)
|
|
engine = create_engine(settings.database_url, echo=False, connect_args=connect_args)
|
|
|
|
|
|
def init_db() -> None:
|
|
SQLModel.metadata.create_all(engine)
|
|
|
|
|
|
def get_session():
|
|
with Session(engine) as session:
|
|
yield session
|