bug修复

This commit is contained in:
2026-07-21 11:02:26 +08:00
parent 14899055a4
commit 1d7e7d999c
5 changed files with 51 additions and 27 deletions
+29
View File
@@ -22,6 +22,35 @@ async def get_db():
raise
# ────────────── CRUD 工具函数 ──────────────
async def db_add(db: AsyncSession, obj, *, refresh: bool = False):
"""创建记录并提交。refresh=True 会在提交后刷新对象(获取生成的 id 等)。"""
db.add(obj)
await db.flush()
if refresh:
await db.refresh(obj)
await db.commit()
async def db_update(db: AsyncSession, obj, data: dict):
"""批量更新字段并提交。data 一般来自 model_dump(exclude_unset=True)。"""
for key, value in data.items():
setattr(obj, key, value)
await db.commit()
async def db_delete(db: AsyncSession, obj):
"""删除记录并提交。"""
await db.delete(obj)
await db.commit()
async def db_flush(db: AsyncSession):
"""将待写操作刷到数据库(不提交事务),用于需要获取生成 ID 等中间状态的场景。"""
await db.flush()
async def init_db():
async with engine.begin() as conn:
# 迁移旧表:acme_config → acme_configs