旧 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:
@@ -11,9 +11,8 @@ export const problemDifficultySchema = z.enum(["Low", "Mid", "High"])
|
||||
|
||||
/**
|
||||
* SQL 题配置与展示数据。两者都是 `problem.sql_config` / `problem.sql_display`
|
||||
* 的 **JSONB 原文**,所以键名保持 snake_case —— 回滚时旧后端要读同一份,
|
||||
* 且旧后端 `judge/sql_runner.py:build_display` 产出的就是这个形状
|
||||
* (生产库 9 道 SQL 题逐条比对过,键集完全一致)。
|
||||
* 的 **JSONB 原文**,所以键名保持 snake_case —— 生产库 9 道 SQL 题存的就是这个形状
|
||||
* (移植自旧后端 `judge/sql_runner.py:build_display`,逐条比对过,键集完全一致)。
|
||||
*
|
||||
* 写成精确 schema 而不是 `z.record(z.unknown())`:前端原来得自己手抄一份
|
||||
* SQLDisplay 接口才能渲染表格,抄错了没人拦得住。
|
||||
|
||||
Reference in New Issue
Block a user