From dd028e22037919ca9c4bc6cc22b61ec0d8727b74 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Tue, 11 Aug 2026 16:56:21 +0800 Subject: [PATCH] fix: monkey-patch get_sor_context to reuse global DBPools --- app/pccs.py | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) 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