Files
Document_editor/backend/app/database.py
2026-06-15 09:18:58 +03:00

35 lines
792 B
Python

from sqlalchemy import create_engine, event
from sqlalchemy.orm import DeclarativeBase, sessionmaker
from app.config import settings
_is_sqlite = settings.database_url.startswith("sqlite")
engine = create_engine(
settings.database_url,
connect_args={"check_same_thread": False} if _is_sqlite else {},
pool_pre_ping=True,
)
if _is_sqlite:
@event.listens_for(engine, "connect")
def set_sqlite_pragma(dbapi_connection, _connection_record):
cursor = dbapi_connection.cursor()
cursor.execute("PRAGMA foreign_keys=ON")
cursor.close()
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
class Base(DeclarativeBase):
pass
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()