Scholar's Tea 数据库直查
适用场景
- 浏览器工具不可用(npm install 失败等)
- 社区 API 端点未知或不可用
- 需要快速获取用户、帖子、评论等结构化数据
数据库连接信息
- 类型: PostgreSQL
- 连接串:
postgresql://zju321@127.0.0.1:5432/scholars_tea
- 来源:
/data/home/zju321/321/DHL/Scholar's_Tea/.env 中的 DATABASE_URL
项目技术栈
- Next.js + Prisma ORM + PostgreSQL
- Prisma schema:
/data/home/zju321/321/DHL/Scholar's_Tea/prisma/schema.prisma
查询方法
关键注意事项
- Prisma 用双引号包裹表名和列名(如
"User", "createdAt"),psql 查询时必须加双引号
- 用 shell 单引号包裹整个 SQL,内部用双引号:
psql "postgresql://zju321@127.0.0.1:5432/scholars_tea" -c 'SELECT "name", "email", "role", "createdAt" FROM "User" ORDER BY "createdAt" DESC LIMIT 10;'
常用查询
# 最近注册用户
psql "postgresql://zju321@127.0.0.1:5432/scholars_tea" -c 'SELECT "name", "email", "role", "createdAt" FROM "User" ORDER BY "createdAt" DESC LIMIT 10;'
# 用户总数
psql "postgresql://zju321@127.0.0.1:5432/scholars_tea" -c 'SELECT COUNT(*) FROM "User";'
# 最近帖子
psql "postgresql://zju321@127.0.0.1:5432/scholars_tea" -c 'SELECT "title", "createdAt" FROM "Post" ORDER BY "createdAt" DESC LIMIT 10;'
# 课题组列表
psql "postgresql://zju321@127.0.0.1:5432/scholars_tea" -c 'SELECT "name", "verificationStatus", "createdAt" FROM "ResearchGroup" ORDER BY "createdAt" DESC;'
主要表结构(从 Prisma schema 提取)
| 表名 |
说明 |
关键字段 |
| User |
用户 |
name, email, role(USER/GROUP_ADMIN/ADMIN), createdAt |
| Post |
帖子 |
title, content, authorId, disciplineId, groupId, createdAt |
| Comment |
评论 |
content, authorId, postId, parentId, createdAt |
| ResearchGroup |
课题组 |
name, slug, institutionId, verificationStatus, createdAt |
| GroupMember |
课题组成员 |
userId, groupId, role(LEADER/ADVISOR/MEMBER) |
| Vote |
投票 |
userId, postId/commentId, value |
| Publication |
论文 |
title, authors[], year, doi, groupId |
| Account |
OAuth 账号 |
userId, provider, providerAccountId |
已知问题
- ngrok tunnel 端口映射:ngrok 可能映射到 port 5000(card_server.py)而非 port 3000(主服务),导致外部访问失败
- 浏览器工具不稳定:
agent-browser npm 包安装可能失败,不要依赖浏览器查数据
- 测试账号多:15 个用户中约 6 个是测试账号(含 test/playwright/SocketTest),分析时注意过滤
- 重复注册:存在同一用户因邮箱拼写错误注册两次的情况(如 FLYAJ/FlyAJ, gmail.com/gmai.com)
诊断路径
当需要查询社区数据时:
- ❌ 先试浏览器 → 可能失败
- ❌ 试 API 端点 → 大部分 404(Next.js API routes 可能未暴露)
- ✅ 直接 psql 查询 → 最可靠
- 路径:Prisma schema → 确认表结构 → .env 获取连接串 → psql 查询
1---2name: scholars-tea-db-query3description: 直接查询 Scholar's Tea PostgreSQL 数据库(绕过浏览器/API 故障),用于获取用户、帖子、课题组等社区数据。4---56# Scholar's Tea 数据库直查78## 适用场景9- 浏览器工具不可用(npm install 失败等)10- 社区 API 端点未知或不可用11- 需要快速获取用户、帖子、评论等结构化数据1213## 数据库连接信息14- **类型**: PostgreSQL15- **连接串**: `postgresql://zju321@127.0.0.1:5432/scholars_tea`16- **来源**: `/data/home/zju321/321/DHL/Scholar's_Tea/.env` 中的 `DATABASE_URL`1718## 项目技术栈19- Next.js + Prisma ORM + PostgreSQL20- Prisma schema: `/data/home/zju321/321/DHL/Scholar's_Tea/prisma/schema.prisma`2122## 查询方法2324### 关键注意事项251. **Prisma 用双引号包裹表名和列名**(如 `"User"`, `"createdAt"`),psql 查询时必须加双引号262. 用 shell 单引号包裹整个 SQL,内部用双引号:2728```bash29psql "postgresql://zju321@127.0.0.1:5432/scholars_tea" -c 'SELECT "name", "email", "role", "createdAt" FROM "User" ORDER BY "createdAt" DESC LIMIT 10;'30```3132### 常用查询3334```bash35# 最近注册用户36psql "postgresql://zju321@127.0.0.1:5432/scholars_tea" -c 'SELECT "name", "email", "role", "createdAt" FROM "User" ORDER BY "createdAt" DESC LIMIT 10;'3738# 用户总数39psql "postgresql://zju321@127.0.0.1:5432/scholars_tea" -c 'SELECT COUNT(*) FROM "User";'4041# 最近帖子42psql "postgresql://zju321@127.0.0.1:5432/scholars_tea" -c 'SELECT "title", "createdAt" FROM "Post" ORDER BY "createdAt" DESC LIMIT 10;'4344# 课题组列表45psql "postgresql://zju321@127.0.0.1:5432/scholars_tea" -c 'SELECT "name", "verificationStatus", "createdAt" FROM "ResearchGroup" ORDER BY "createdAt" DESC;'46```4748## 主要表结构(从 Prisma schema 提取)4950| 表名 | 说明 | 关键字段 |51|------|------|----------|52| User | 用户 | name, email, role(USER/GROUP_ADMIN/ADMIN), createdAt |53| Post | 帖子 | title, content, authorId, disciplineId, groupId, createdAt |54| Comment | 评论 | content, authorId, postId, parentId, createdAt |55| ResearchGroup | 课题组 | name, slug, institutionId, verificationStatus, createdAt |56| GroupMember | 课题组成员 | userId, groupId, role(LEADER/ADVISOR/MEMBER) |57| Vote | 投票 | userId, postId/commentId, value |58| Publication | 论文 | title, authors[], year, doi, groupId |59| Account | OAuth 账号 | userId, provider, providerAccountId |6061## 已知问题62631. **ngrok tunnel 端口映射**:ngrok 可能映射到 port 5000(card_server.py)而非 port 3000(主服务),导致外部访问失败642. **浏览器工具不稳定**:`agent-browser` npm 包安装可能失败,不要依赖浏览器查数据653. **测试账号多**:15 个用户中约 6 个是测试账号(含 test/playwright/SocketTest),分析时注意过滤664. **重复注册**:存在同一用户因邮箱拼写错误注册两次的情况(如 FLYAJ/FlyAJ, gmail.com/gmai.com)6768## 诊断路径6970当需要查询社区数据时:711. ❌ 先试浏览器 → 可能失败722. ❌ 试 API 端点 → 大部分 404(Next.js API routes 可能未暴露)733. ✅ **直接 psql 查询** → 最可靠74 - 路径:Prisma schema → 确认表结构 → .env 获取连接串 → psql 查询