问答记录
AIConfig 与 User 强关联时外键约束违规的排查与修复
创建于 2026/7/15更新于 2026/7/15
PostgreSQL
Foreign Key
Prisma
AIConfig
踩坑
## 问题描述
保存 AI Config 时报错:
```
Foreign key constraint failed on the field: `ai_config_userId_fkey`
```
## 根本原因
前端硬编码 userId: 'system',但数据库中不存在该用户。
## 解决方案
1. 创建共享常量文件 src/constants/user.ts,定义 FIXED_USER_ID
2. 所有使用 userId 的地方统一引用此常量
3. 在 Server Action 中添加用户存在性验证
4. 确保数据库 seed 脚本创建正确的测试用户
## 关键代码示例
```typescript
// src/constants/user.ts
export const FIXED_USER_ID = "550e8400-e29b-41d4-a716-446655440000";
// src/server/actions/ai-config.ts
const userExists = await prisma.user.findUnique({
where: { id: validated.userId },
});
if (!userExists) {
throw new Error("用户不存在,请重新登录");
}
```
关联知识资产
QA
资产 ID: daaa3550-14fa-47fe-a3d2-2548092b7ba8