checkpoint: SQLite 清理——业务/测试层统一 PostgreSQL(删 aiosqlite/fakeredis)
- setting: DATABASE_TYPE 收窄为 postgres,DB_URI/ASYNC_DB_URI 去 sqlite 分支 - database: create_async_engine_and_session 去 sqlite 分支(同步 psycopg 引擎保留给 jobstore) - number_gen: 去 DATABASE_TYPE 非 postgres 早退(advisory lock 恒定走 PG) - chat/crud: 删 SqliteDb 分支(agno 无硬依赖) - pyproject/requirements/uv.lock: 删 aiosqlite、fakeredis;conftest 口径注释同步 - test_stat_analysis_tc: docstring 口径 SQLite→PG
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
存量数据迁移:首次使用某序列名时由 seed_fn(服务端传入)从既有记录推算
|
||||
起始号(原扫描逻辑),此后全部走原子递增,不再扫描。
|
||||
"""
|
||||
from typing import Any, Awaitable, Callable
|
||||
from collections.abc import Awaitable, Callable
|
||||
|
||||
from sqlalchemy import select, text
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
@@ -23,10 +23,6 @@ class NumberGenService:
|
||||
|
||||
@staticmethod
|
||||
async def _acquire_lock(db: AsyncSession, name: str) -> None:
|
||||
from app.config.setting import settings
|
||||
|
||||
if settings.DATABASE_TYPE != "postgres":
|
||||
return # sqlite 测试库无 advisory lock,退化为普通自增(单进程无并发竞争)
|
||||
# hashtextextended 对文本做稳定 64 位哈希,同名序列恒映射同一把锁
|
||||
await db.execute(text("SELECT pg_advisory_xact_lock(hashtextextended(:n, 0))"), {"n": name})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user