Files
OJ2/apps/api/package.json
yuetsh 6fdc3c588e chore(开发环境): 本机库改成靠迁移自举,db:migrate 换成线上同一个执行器
compose.dev.yml 不再把 schema dump 挂成 initdb:0000 就是完整的建表迁移,
起完库 bun run db:migrate 从 0000 自举即可。实测两条路子跑出来的结构一致 ——
空库自举 16 条迁移 vs 灌 dump + 打基线 + 跑迁移,pg_dump --schema-only
逐行零差异(1981 行)。docs/specs/schema.sql 与 sample-data.sql 随之删掉,
前者的内容已经在 0000_crazy_gateway.sql 里。

db:migrate 原来是 drizzle-kit migrate,和线上 oj2-api migrate 不是同一个
执行器:drizzle 那个所有迁移共用一个事务、跑不了 CREATE INDEX CONCURRENTLY,
对已打基线的库还会从 0000 撞表回滚且 exit 1 不打印任何错误。现在两边都走
db/migrate.ts。DATABASE_URL 从根目录 .env 读(--env-file),仓库里不留连接串。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 08:03:57 -06:00

46 lines
1.5 KiB
JSON

{
"name": "@oj2/api",
"version": "0.0.0",
"private": true,
"type": "module",
"scripts": {
"dev": "bun run --parallel dev:http dev:worker",
"dev:http": "bun --watch src/main.ts serve",
"dev:worker": "bun --watch src/main.ts worker",
"start": "bun src/main.ts serve",
"worker": "bun src/main.ts worker",
"build": "bun build --compile --target=bun-linux-x64 src/main.ts --outfile ../../dist/oj2-api",
"seed:dev": "bun src/scripts/seed-dev.ts",
"backfill:problemsets": "bun src/main.ts backfill-problemsets",
"fix:achievement-hours": "bun src/main.ts fix-achievement-hours",
"typecheck": "tsc --noEmit",
"check:routes": "bun src/scripts/check-route-shadowing.ts",
"check:ast": "bun src/scripts/check-ast-targets.ts",
"db:pull": "drizzle-kit pull",
"db:generate": "drizzle-kit generate",
"db:migrate": "bun --env-file=../../.env src/main.ts migrate"
},
"dependencies": {
"@node-rs/jieba": "^2.0.2",
"@node-rs/jieba-linux-x64-gnu": "2.0.2",
"@oj2/contract": "workspace:*",
"bullmq": "^6.2.2",
"drizzle-orm": "^0.45.2",
"fflate": "^0.8.3",
"hono": "^4.13.4",
"ioredis": "^6.0.0",
"postgres": "^3.4.9",
"sql.js": "^1.14.2",
"tree-sitter-c": "^0.24.1",
"tree-sitter-cpp": "^0.23.4",
"tree-sitter-python": "^0.25.0",
"web-tree-sitter": "^0.26.13",
"zod": "^4.4.3"
},
"devDependencies": {
"@types/sql.js": "^1.4.11",
"drizzle-kit": "^0.31.10",
"typescript": "^7.0.2"
}
}