fix: initialize DBPools with databases in init() for get_sor_context
This commit is contained in:
parent
8f6027905f
commit
ac330eb097
20
app/pccs.py
20
app/pccs.py
@ -8,21 +8,27 @@ from ahserver.webapp import webapp
|
||||
|
||||
|
||||
def init():
|
||||
# 注入全局默认 module_dbname — ServerEnv DictObject 每个实例不同,
|
||||
# 必须通过 monkey-patching DictObject.__getattr__ 来让所有实例有默认值
|
||||
from ahserver.serverenv import ServerEnv
|
||||
# Monkey-patch DictObject.__getattr__ — 所有 ServerEnv 实例默认返回 'pccs'
|
||||
from appPublic.dictObject import DictObject
|
||||
|
||||
_orig_getattr = DictObject.__getattr__
|
||||
_orig = DictObject.__getattr__
|
||||
|
||||
def _patched_getattr(self, key):
|
||||
def _patched(self, key):
|
||||
if key == 'get_module_dbname':
|
||||
return lambda m: 'pccs'
|
||||
if key == 'password_encode':
|
||||
return lambda s: s
|
||||
return _orig_getattr(self, key)
|
||||
return _orig(self, key)
|
||||
|
||||
DictObject.__getattr__ = _patched_getattr
|
||||
DictObject.__getattr__ = _patched
|
||||
|
||||
# 初始化全局 DBPools — sqlor 的 get_sor_context 创建新 DBPools() 时
|
||||
# 需要能拿到 databases。通过 sqlor.dbpools 模块级全局变量共享。
|
||||
from sqlor.dbpools import DBPools
|
||||
from appPublic.jsonConfig import getConfig
|
||||
|
||||
config = getConfig()
|
||||
DBPools(config.databases)
|
||||
|
||||
from appbase.init import load_appbase
|
||||
from rbac.init import load_rbac
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user