67 lines
1.7 KiB
Markdown
67 lines
1.7 KiB
Markdown
# 500 错误修复说明
|
|
|
|
## 问题描述
|
|
|
|
页面白屏,报错:
|
|
```
|
|
[Error] Failed to load resource: the server responded with a status of 500 (Internal Server Error) (guest, line 0)
|
|
```
|
|
|
|
## 根本原因
|
|
|
|
数据库表 `User` 缺少新增的字段:
|
|
- `role` (VARCHAR, 默认值: 'regular')
|
|
- `isActive` (BOOLEAN, 默认值: true)
|
|
- `createdAt` (TIMESTAMP, 默认值: NOW())
|
|
- `updatedAt` (TIMESTAMP, 默认值: NOW())
|
|
|
|
代码在 `createGuestUser()` 和 `authorize()` 函数中尝试访问这些字段,但数据库表中不存在,导致查询失败。
|
|
|
|
## 修复步骤
|
|
|
|
### 1. 添加缺失的数据库字段
|
|
|
|
```sql
|
|
ALTER TABLE "User" ADD COLUMN IF NOT EXISTS role VARCHAR DEFAULT 'regular' NOT NULL;
|
|
ALTER TABLE "User" ADD COLUMN IF NOT EXISTS "isActive" BOOLEAN DEFAULT true NOT NULL;
|
|
ALTER TABLE "User" ADD COLUMN IF NOT EXISTS "createdAt" TIMESTAMP DEFAULT NOW() NOT NULL;
|
|
ALTER TABLE "User" ADD COLUMN IF NOT EXISTS "updatedAt" TIMESTAMP DEFAULT NOW() NOT NULL;
|
|
```
|
|
|
|
### 2. 运行数据库迁移
|
|
|
|
```bash
|
|
cd /var/www/ai-chatbot
|
|
pnpm db:migrate
|
|
```
|
|
|
|
### 3. 重启应用
|
|
|
|
```bash
|
|
pm2 restart ai-chatbot
|
|
```
|
|
|
|
## 验证结果
|
|
|
|
- ✅ 数据库字段已添加
|
|
- ✅ 应用已重启
|
|
- ✅ Guest 路由正常响应(返回重定向,这是预期行为)
|
|
|
|
## 当前状态
|
|
|
|
应用现在应该可以正常访问:
|
|
- **本地访问**: `http://localhost:3001` ✅
|
|
- **穿透访问**: `http://156.225.27.52:5245` ✅
|
|
|
|
## 注意事项
|
|
|
|
1. 所有现有用户需要更新,为它们设置默认的 `role` 和 `isActive` 值
|
|
2. 如果还有其他数据库迁移未执行,需要运行 `pnpm db:migrate`
|
|
|
|
## 后续建议
|
|
|
|
1. 检查是否有其他数据库迁移未执行
|
|
2. 为现有用户更新 `role` 和 `isActive` 字段
|
|
3. 确保所有数据库迁移都已正确执行
|
|
|