diff --git a/app/pccs.py b/app/pccs.py index c02377e..d011fd2 100644 --- a/app/pccs.py +++ b/app/pccs.py @@ -22,11 +22,22 @@ def init(): DictObject.__getattr__ = _patched - # 验证 monkey-patch 生效 - from ahserver.serverenv import ServerEnv - e = ServerEnv() - dbname = e.get_module_dbname('rbac') - print(f'[pccs] get_module_dbname(rbac) = {dbname}', flush=True) + # Monkey-patch get_sor_context — 复用已初始化的 DBPools 而非创建空实例 + from appPublic.jsonConfig import getConfig + import sqlor.dbpools as _dbp + from sqlor.dbpools import DBPools + + config = getConfig() + _global_db = DBPools(config.databases) + + _orig_sor_ctx = _dbp.get_sor_context + + async def _patched_sor_ctx(env, modulename, errorback=None): + dbname = env.get_module_dbname(modulename) + async with _global_db.sqlorContext(dbname) as sor: + yield sor + + _dbp.get_sor_context = _patched_sor_ctx from appbase.init import load_appbase from rbac.init import load_rbac