diff --git a/yunke-server/app/storage/summary.py b/yunke-server/app/storage/summary.py index 6209f02..a0b4f05 100644 --- a/yunke-server/app/storage/summary.py +++ b/yunke-server/app/storage/summary.py @@ -33,14 +33,20 @@ _SH = ZoneInfo("Asia/Shanghai") async def has_rows(session: AsyncSession) -> bool: - """汇总表是否已有数据(读端点的空表守卫:部署回填前自动回退旧实时聚合)。""" - return bool( - ( - await session.execute( - sa.select(sa.func.count()).select_from(MsgDailyStats) - ) - ).scalar_one() - ) + """汇总表是否已有数据(读端点的空表守卫:部署回填前自动回退旧实时聚合)。 + + 表还不存在(漏跑迁移的升级)与空表同视——回退旧路径,不 500。 + """ + try: + return bool( + ( + await session.execute( + sa.select(sa.func.count()).select_from(MsgDailyStats) + ) + ).scalar_one() + ) + except (sa.exc.OperationalError, sa.exc.ProgrammingError): + return False def day_key(ts_ms: int) -> int: