fix: DBPools Singleton - manually set db.databases after getting instance

This commit is contained in:
yumoqing 2026-05-08 15:17:19 +08:00
parent 8d233f7dcc
commit 0a270f2c59
2 changed files with 17 additions and 11 deletions

View File

@ -128,7 +128,8 @@ class HermesReasoningEngine:
try:
config = getConfig()
db = DBPools(config.databases)
db = DBPools()
db.databases = config.databases
async with db.sqlorContext(dbname) as sor:
where = {}
if user_id:
@ -200,8 +201,9 @@ class HermesReasoningEngine:
skills = []
try:
config = getConfig()
db = DBPools(config.databases)
async with db.sqlorContext('harnessed_reasoning') as sor:
db = DBPools()
db.databases = config.databases
async with db.sqlorContext(dbname) as sor:
for kw in list(keywords)[:3]:
rows = await sor.R('hermes_skills', {
'user_id': user_id,
@ -634,8 +636,9 @@ class HermesReasoningEngine:
'updated_at': datetime.now(),
}
config = getConfig()
db = DBPools(config.databases)
async with db.sqlorContext('harnessed_reasoning') as sor:
db = DBPools()
db.databases = config.databases
async with db.sqlorContext(dbname) as sor:
res = await sor.C('harnessed_reasoning_sessions', data)
info(f"Session stored: {session_id}, result={res}")
except Exception as e:
@ -647,8 +650,9 @@ class HermesReasoningEngine:
"""Update session status."""
try:
config = getConfig()
db = DBPools(config.databases)
async with db.sqlorContext('harnessed_reasoning') as sor:
db = DBPools()
db.databases = config.databases
async with db.sqlorContext(dbname) as sor:
await sor.U('harnessed_reasoning_sessions', {
'id': session_id,
'status': status,
@ -671,8 +675,9 @@ class HermesReasoningEngine:
try:
config = getConfig()
db = DBPools(config.databases)
async with db.sqlorContext('harnessed_reasoning') as sor:
db = DBPools()
db.databases = config.databases
async with db.sqlorContext(dbname) as sor:
filters = {'id': session_id}
if user_id:
filters['user_id'] = user_id
@ -709,8 +714,9 @@ class HermesReasoningEngine:
try:
config = getConfig()
db = DBPools(config.databases)
async with db.sqlorContext('harnessed_reasoning') as sor:
db = DBPools()
db.databases = config.databases
async with db.sqlorContext(dbname) as sor:
rows = await sor.R('harnessed_reasoning_sessions', {'user_id': user_id, 'sort': 'created_at desc'})
rows = rows or []
rows = rows[offset:offset + limit]