MCPcopy Create free account
hub / github.com/DJWOMS/fastapi_base / DatabaseHelper

Class DatabaseHelper

config/database/db_helper.py:14–42  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

12
13
14class DatabaseHelper:
15 def __init__(self, url: str, echo: bool = False):
16 self.engine = create_async_engine(url=url, echo=echo)
17
18 self.session_factory = async_sessionmaker(
19 bind=self.engine,
20 autoflush=False,
21 autocommit=False,
22 expire_on_commit=False
23 )
24
25 def get_scope_session(self):
26 return async_scoped_session(
27 session_factory=self.session_factory,
28 scopefunc=current_task
29 )
30
31 @asynccontextmanager
32 async def get_db_session(self):
33 from sqlalchemy import exc
34
35 session: AsyncSession = self.session_factory()
36 try:
37 yield session
38 except exc.SQLAlchemyError as error:
39 await session.rollback()
40 raise
41 finally:
42 await session.close()
43
44
45db_helper = DatabaseHelper(settings_db.database_url, settings_db.DB_ECHO_LOG)

Callers 1

db_helper.pyFile · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected