清理旧后端下线后的残留
Some checks failed
Deploy / deploy (push) Has been cancelled

旧 Django 后端 2026-08-26 下线、回滚路径作废,代码里还留着几处以它为前提的
死代码和过期注释。

- PUBLIC_WS_URL / PUBLIC_OJ_URL 全部删除。BaseWebSocket 的
  `${PUBLIC_WS_URL}/${path}/` fallback 是 Channels 时代的写法,而三个子类
  早就各自传 url,等于永不执行;config.vue 里 PUBLIC_OJ_URL 只是个会被
  getWebsiteConfig() 立刻覆盖、且指着 :8000 的假初值。WebSocketConfig.path
  随之去掉,url 改成必填。
- vite.config:删掉 /api2、/ws2 的迁移期注释,换成还成立的约束(代理这三段
  要和 docker/Caddyfile 同步);newBackend 改名 backend。
- 六处 “回滚时旧后端还要读” 换成真实理由:snake_case 保留的结论不变,但因为
  判题机按这套键名写、存量 JSONB 就是这形状。
- CLAUDE.md:数据库一节开头「不写迁移 + 先想清楚回滚」与下一节的 drizzle
  migration 自相矛盾,改掉;判题状态码不再要求同步到 OnlineJudge,理由换成
  历史 submission.result 和沙箱用的就是这套编码。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-26 09:09:26 -06:00
parent 64cb7b62ef
commit 7793a2fe4c
11 changed files with 33 additions and 51 deletions

View File

@@ -95,11 +95,11 @@ dev 直接起不来。
加完路由跑 `bun run --filter '@oj2/api' check:routes`
### 判题状态码要三处同步
### 判题状态码不能改
`apps/api/src/judge/status.ts``apps/web/src/utils/constants.ts`
以及上一代的 `../OnlineJudge/submission/models.py`(回滚时要对得上)。
题目表情 reaction 的语义 key 同理。
`apps/api/src/judge/status.ts``apps/web/src/utils/constants.ts` 必须一致。
这些整数是**落库的值**12 万条历史提交的 `submission.result` 就是它们,判题沙箱回的也是
这套编码,所以只能新增、不能改已有的含义。题目表情 reaction 的语义 key 同理。
### 比赛只有 ACM 模式
@@ -112,9 +112,11 @@ dev 直接起不来。
## 数据库
Drizzle schema 是从生产库 `drizzle-kit pull` 出来的,**不写迁移**。
新旧后端跑在同一套表结构上(阶段 5 演练逐列比对过,零差异),这是回滚能成立的前提 ——
所以改 schema 前先想清楚回滚怎么办。
Drizzle schema 最初`drizzle-kit pull` 从生产库拉出来的,所以它长得像 Django 建的表
表名、bigint/int4 混用、外键全是 NO ACTION`schema.ts` 顶部记了哪些地方是手工修的。
**schema 现在归 OJ2 独占。** 旧后端已下线,「改 schema 要考虑回滚」这条约束不再存在,
结构变更走下面的 migration 正常演进即可。
### 改 schema 走 drizzle migration