mirror of
https://github.com/OpenHands/OpenHands.git
synced 2026-03-22 05:37:20 +08:00
39 lines
1.0 KiB
Python
39 lines
1.0 KiB
Python
"""
|
|
Database connection module for enterprise storage.
|
|
|
|
This is for backwards compatibility with V0.
|
|
|
|
This module provides database engines and session makers by delegating to the
|
|
centralized DbSessionInjector from app_server/config.py. This ensures a single
|
|
source of truth for database connection configuration.
|
|
"""
|
|
|
|
import contextlib
|
|
|
|
|
|
def _get_db_session_injector():
|
|
from openhands.app_server.config import get_global_config
|
|
|
|
_config = get_global_config()
|
|
return _config.db_session
|
|
|
|
|
|
def session_maker(**kwargs):
|
|
db_session_injector = _get_db_session_injector()
|
|
factory = db_session_injector.get_session_maker()
|
|
return factory(**kwargs)
|
|
|
|
|
|
@contextlib.asynccontextmanager
|
|
async def a_session_maker(**kwargs):
|
|
db_session_injector = _get_db_session_injector()
|
|
factory = await db_session_injector.get_async_session_maker()
|
|
async with factory(**kwargs) as session:
|
|
yield session
|
|
|
|
|
|
def get_engine():
|
|
db_session_injector = _get_db_session_injector()
|
|
engine = db_session_injector.get_db_engine()
|
|
return engine
|