# `prisma generate --no-engine` 把 client 生成成 Accelerate-only

**日期**：2026-05-18
**场景**：schema 改动后跑 `prisma generate --no-engine` 重新生成 client。之后所有
查询和 seed 都报：

```
Error validating datasource `db`: the URL must start with the protocol
`prisma://` or `prisma+postgres://`
```

`backend/.env` 里明明是普通 `DATABASE_URL=postgresql://...:3702/ffws_wt_slot_3`，
按理 Prisma 应该走 query engine 直连 PG。

## 根因

`prisma generate --no-engine` 是 Prisma Accelerate 的**专用 flag**：
- 它生成的 client **不打包 query engine binary**
- 这种 client 只能通过 Accelerate proxy 工作（必须 `prisma://` 或 `prisma+postgres://` URL）
- 普通 PG URL 直接报"URL must start with"——错误信息**没**提示是 `--no-engine` 的锅

## 解决

不要带 `--no-engine`：

```bash
# ❌ 错
npx prisma generate --no-engine

# ✅ 对
npx prisma generate
```

如果误用了，重新跑一次不带 flag 的 generate 就恢复（覆写 `node_modules/.prisma/client`）。

## 何时遇到

- AI / 脚本里 copy-paste 别人的 `prisma generate` 命令，没注意 flag
- 试图"优化 build 速度" / "缩小 client 体积" 的不该有的优化
- CI 配置抄 Accelerate doc

## 关联

- 项目当前**没有** Accelerate（直连 `ffws_wt_pg_*` 容器），永远不该用 `--no-engine`
- 如果未来引入 Accelerate（性能优化），要全栈一起切：URL + generate flag + 部署 token
