presenton/servers/fastapi_old/api/services/database.py
2025-07-14 18:49:48 +05:45

23 lines
546 B
Python

from contextlib import contextmanager
import os
from sqlalchemy import create_engine
from sqlmodel import Session
database_url = os.getenv("DATABASE_URL") or "sqlite:///" + os.path.join(
os.getenv("APP_DATA_DIRECTORY"), "fastapi.db"
)
connect_args = {}
if "sqlite" in database_url:
connect_args["check_same_thread"] = False
sql_engine = create_engine(database_url, connect_args=connect_args)
@contextmanager
def get_sql_session():
session = Session(sql_engine)
try:
yield session
finally:
session.close()