返回 Bug 清单
BUG-0310project-29高待处理database-schema
drizzle 用 db.execute(sql`BEGIN;`) 手写事务 —— postgres driver 不允许直接执行事务控制
发现:2026-10-01验证:2026-10-27置信度:70%
症状
账号合并(迁移 binds + 删旧用户)执行时事务控制语句报错或语义失效,多条写操作无原子性
根因
postgres-js 等 driver 的 execute 不支持手写 BEGIN/COMMIT 事务控制语句——事务必须由 driver 的事务 API 管理连接上下文,手动 BEGIN 只是往连接池里扔了一条孤立的 SQL
修复方案
改用 drizzle 的 db.transaction(async (tx) => {...}),事务内所有读写换用 tx 句柄
错误签名
db.execute BEGIN COMMIT drizzle transaction postgres driver 不允许直接 execute 事务控制技术信息
来源项目
project-29
标签
project-29, mcp-reported