R106/A1-A6 固化自动视觉巡检门禁
这个提交包含在:
@@ -12,6 +12,7 @@
|
||||
"prisma:format": "prisma format",
|
||||
"prisma:validate": "prisma validate",
|
||||
"prisma:generate": "prisma generate",
|
||||
"prisma:check-generated": "node src/scripts/check-prisma-client-generated.js",
|
||||
"prisma:migrate:dev": "prisma migrate dev",
|
||||
"prisma:migrate:deploy": "prisma migrate deploy",
|
||||
"seed:config": "node src/scripts/seed-config.js",
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
const fs = require("node:fs");
|
||||
const path = require("node:path");
|
||||
|
||||
function readSchema() {
|
||||
const schemaPath = path.resolve(__dirname, "../../prisma/schema.prisma");
|
||||
return fs.readFileSync(schemaPath, "utf8");
|
||||
}
|
||||
|
||||
function assertCondition(condition, message) {
|
||||
if (!condition) {
|
||||
throw new Error(message);
|
||||
}
|
||||
}
|
||||
|
||||
async function main() {
|
||||
const schema = readSchema();
|
||||
assertCondition(
|
||||
/enum\s+OcrProvider\s*\{[\s\S]*\bmock\b[\s\S]*\}/m.test(schema),
|
||||
"schema.prisma 中 OcrProvider 未包含 mock,请先确认 OCR mock 迁移是否存在。",
|
||||
);
|
||||
|
||||
const prismaClient = require("@prisma/client");
|
||||
const generatedOcrProvider = prismaClient.$Enums?.OcrProvider ?? prismaClient.OcrProvider ?? {};
|
||||
assertCondition(
|
||||
generatedOcrProvider.mock === "mock",
|
||||
"Prisma Client 生成物缺少 OcrProvider.mock,请在 server/ 下执行 npm run prisma:generate。",
|
||||
);
|
||||
|
||||
process.stdout.write("[prisma-generated-check] OcrProvider.mock is available\n");
|
||||
}
|
||||
|
||||
main().catch((error) => {
|
||||
process.stderr.write(`[prisma-generated-check][FAIL] ${error?.message ?? error}\n`);
|
||||
process.exit(1);
|
||||
});
|
||||
在新工单中引用
屏蔽一个用户