fix: monkey-patch get_sor_context to reuse global DBPools
This commit is contained in:
parent
b51eb9f626
commit
dd028e2203
21
app/pccs.py
21
app/pccs.py
@ -22,11 +22,22 @@ def init():
|
|||||||
|
|
||||||
DictObject.__getattr__ = _patched
|
DictObject.__getattr__ = _patched
|
||||||
|
|
||||||
# 验证 monkey-patch 生效
|
# Monkey-patch get_sor_context — 复用已初始化的 DBPools 而非创建空实例
|
||||||
from ahserver.serverenv import ServerEnv
|
from appPublic.jsonConfig import getConfig
|
||||||
e = ServerEnv()
|
import sqlor.dbpools as _dbp
|
||||||
dbname = e.get_module_dbname('rbac')
|
from sqlor.dbpools import DBPools
|
||||||
print(f'[pccs] get_module_dbname(rbac) = {dbname}', flush=True)
|
|
||||||
|
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 appbase.init import load_appbase
|
||||||
from rbac.init import load_rbac
|
from rbac.init import load_rbac
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user