# prisma format 会重格所有 schema 文件，提交前必须撤无关文件

> **日期**: 2026-05-13
> **类型**: 项目陷阱

## 现象

执行 `npx prisma format` 后 `git status` 显示**所有** `.prisma` 文件都 modified（21 个文件），不只刚改的那个。

git diff 中 ~5000+ 行变化，但绝大多数是**列对齐 / 空行 / 注释缩进**纯 whitespace 调整，无语义变更。

## 根因

multi-file schema 模式（CLAUDE.md §multi-schema）下，`prisma format` 会**统一**整个 `prisma/schema/` 目录里所有文件的格式化规则——历史上没格过的文件也会被一次性矫正。

## 该怎么做

1. **改完 schema 必须跑 format**（确保新文件符合规范、generate 不挂）
2. **提交前必须撤无关文件**：
   ```bash
   # 列出你真正改了的（语义改动）：base.prisma + 新增/直接编辑的几个
   git checkout -- backend/prisma/schema/{无关文件 1}.prisma {2}.prisma ...
   ```
3. **验证差异只剩你的语义改动**：`git diff --stat backend/prisma/schema/` 行数应该是几十行以内，不是几千行

## 不该的做法

- ❌ 全部提交 — PR diff 噪音 5000+ 行，reviewer 看不出来你真改了啥
- ❌ 完全跳过 format — 新文件可能有列对齐 / 注释错位被 generate 时报错或在下一个人 format 时炸开

## 适用面

任何用 multi-file Prisma schema 的项目（不只本项目）。CLAUDE.md §multi-schema 是项目主选模式，所以本陷阱**每次 schema 变更都会复发**。

## 配套：如果 platform_iam.prisma 这种你真改了的也被格式化

可以用更精细的策略：
1. `git checkout -- platform_iam.prisma` 撤回
2. 重新手工 Edit 添加你的几行（避开 format 副作用）
3. 重新跑 `prisma generate`（不跑 format，跳过整体重格）
