v0.11.1: 权限体系重构 + AI管线优化 + 内容整理
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
import { PrismaClient } from "@prisma/client";
|
||||
import { PrismaMariaDb } from "@prisma/adapter-mariadb";
|
||||
import "dotenv/config";
|
||||
|
||||
const base = process.env.DATABASE_URL || "mysql://localhost:3306/zhuiguang_ai?charset=utf8mb4";
|
||||
const sep = base.includes("?") ? "&" : "?";
|
||||
const connectionString = `${base}${sep}connection_limit=20&pool_timeout=30`;
|
||||
const adapter = new PrismaMariaDb(connectionString);
|
||||
const prisma = new PrismaClient({ adapter });
|
||||
|
||||
async function main() {
|
||||
console.log("🔧 内容整理脚本\n");
|
||||
|
||||
// 1. 删除 JavaGuide 的评测(非AI项目不应有评测)
|
||||
const javaGuide = await prisma.skillReview.findFirst({
|
||||
where: { skill: { name: { contains: "JavaGuide" } } },
|
||||
include: { skill: true },
|
||||
});
|
||||
if (javaGuide) {
|
||||
await prisma.skillReview.delete({ where: { id: javaGuide.id } });
|
||||
console.log(`🗑️ 已删除 JavaGuide 评测 #${javaGuide.id}`);
|
||||
}
|
||||
|
||||
// 2. 删除 system-prompts 评测(纯资源收集,非AI工具)
|
||||
const sysPrompts = await prisma.skillReview.findFirst({
|
||||
where: { skill: { name: { contains: "system-prompts" } } },
|
||||
include: { skill: true },
|
||||
});
|
||||
if (sysPrompts) {
|
||||
await prisma.skillReview.delete({ where: { id: sysPrompts.id } });
|
||||
console.log(`🗑️ 已删除 system-prompts 评测 #${sysPrompts.id}`);
|
||||
}
|
||||
|
||||
// 3. 发布所有 DRAFT 评测
|
||||
const draftReviews = await prisma.skillReview.findMany({
|
||||
where: { status: "DRAFT" },
|
||||
include: { skill: { select: { name: true } } },
|
||||
});
|
||||
for (const r of draftReviews) {
|
||||
await prisma.skillReview.update({
|
||||
where: { id: r.id },
|
||||
data: { status: "PUBLISHED" },
|
||||
});
|
||||
console.log(`✅ 已发布评测 #${r.id}: ${r.skill.name} (overall: ${r.overall})`);
|
||||
}
|
||||
|
||||
// 4. 发布所有 DRAFT 技能
|
||||
const draftSkills = await prisma.skill.findMany({
|
||||
where: { status: "draft" },
|
||||
});
|
||||
for (const s of draftSkills) {
|
||||
await prisma.skill.update({
|
||||
where: { id: s.id },
|
||||
data: { status: "published" },
|
||||
});
|
||||
console.log(`✅ 已发布技能 #${s.id}: ${s.name}`);
|
||||
}
|
||||
|
||||
// 5. 统计最终状态
|
||||
const [skillTotal, publishedSkills, reviewTotal, publishedReviews] = await Promise.all([
|
||||
prisma.skill.count(),
|
||||
prisma.skill.count({ where: { status: "published" } }),
|
||||
prisma.skillReview.count(),
|
||||
prisma.skillReview.count({ where: { status: "PUBLISHED" } }),
|
||||
]);
|
||||
|
||||
console.log(`\n📊 整理后状态:`);
|
||||
console.log(` 技能: ${publishedSkills}/${skillTotal} 已发布`);
|
||||
console.log(` 评测: ${publishedReviews}/${reviewTotal} 已发布`);
|
||||
}
|
||||
|
||||
main()
|
||||
.catch((e) => { console.error("💥", e.message); process.exit(1); })
|
||||
.finally(() => prisma.$disconnect());
|
||||
Reference in New Issue
Block a user