1.7 KiB
1.7 KiB
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. 添加缺失的数据库字段
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. 运行数据库迁移
cd /var/www/ai-chatbot
pnpm db:migrate
3. 重启应用
pm2 restart ai-chatbot
验证结果
- ✅ 数据库字段已添加
- ✅ 应用已重启
- ✅ Guest 路由正常响应(返回重定向,这是预期行为)
当前状态
应用现在应该可以正常访问:
- 本地访问:
http://localhost:3001✅ - 穿透访问:
http://156.225.27.52:5245✅
注意事项
- 所有现有用户需要更新,为它们设置默认的
role和isActive值 - 如果还有其他数据库迁移未执行,需要运行
pnpm db:migrate
后续建议
- 检查是否有其他数据库迁移未执行
- 为现有用户更新
role和isActive字段 - 确保所有数据库迁移都已正确执行