bug修复
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user