Commit 8ade968
committed
feat(leaderboard): 脚本改走后端 /api/public/leaderboard,断 prisma 直连 DB
依赖:backend PR InvolutionHell/involutionhell-backend#22 必须先合并 + 部署。
背景
generate-leaderboard.mjs 之前 prisma 直连 Postgres 5432,逼着 DB 端口对公网开放
(且服务端没开 SSL)。本周 Vercel preview build 因为 DATABASE_URL 凭证失效全军覆没。
方案 B:DB 收回内网,脚本走后端 endpoint。
改动
scripts/generate-leaderboard.mjs:
- 删 prisma client + pg.Pool 直连,换成 fetch ${BACKEND_URL}/api/public/leaderboard
(兼容 LEADERBOARD_API_URL 完整覆盖;都没配则走 https://api.involutionhell.com)
- 后端不可达时降级写空数组放行 build (不挂整个 deploy)
- 保留所有本地处理逻辑:.source/index.ts → docId→title/url 映射、git log noreply
反推 login、前 100 名 GitHub API 兜底
- 后端响应兼容 ApiResponse 包装和裸数组两种结构
lib/db.ts:
- 删除(早就是死代码:grep 验证 0 引用,frontend runtime 不直连 DB)
docs/architecture/frontend-backend-separation.md:
- 在"文档贡献数据源"小节下补迁移记录 + 环境变量说明
后续清理(不在本 PR)
- frontend Vercel env 删 DATABASE_URL(preview/production 都删)
- 服务器执行 docker compose up -d postgres 让 5432 收回 127.0.0.1
- Oracle Cloud 安全组关 5432 入站1 parent 5c71a81 commit 8ade968
3 files changed
Lines changed: 184 additions & 173 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
191 | 191 | | |
192 | 192 | | |
193 | 193 | | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
194 | 216 | | |
195 | 217 | | |
196 | 218 | | |
| |||
This file was deleted.
0 commit comments