v0.11.1: 权限体系重构 + AI管线优化 + 内容整理
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
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 });
|
||||
|
||||
const NON_AI_PATTERNS = [
|
||||
"book", "guide", "tutorial", "awesome", "interview",
|
||||
"notes", "handbook", "cheatsheet", "cheat-sheet", "roadmap",
|
||||
"everything you need to know",
|
||||
"StableDiffusionBook",
|
||||
"Claude-Code-Everything-You-Need-to-Know",
|
||||
"Snailclimb/JavaGuide",
|
||||
"pathwaycom/pathway",
|
||||
"Shubhamsaboo/awesome-llm-apps",
|
||||
];
|
||||
|
||||
async function main() {
|
||||
console.log("🧹 清理误入库的非AI技能数据\n");
|
||||
|
||||
const skills = await prisma.skill.findMany({
|
||||
select: { id: true, name: true, sourceUrl: true, status: true },
|
||||
});
|
||||
|
||||
let cleaned = 0;
|
||||
for (const skill of skills) {
|
||||
const name = skill.name.toLowerCase();
|
||||
const isNonAI = NON_AI_PATTERNS.some((p) => name.includes(p.toLowerCase()));
|
||||
if (isNonAI && skill.status === "draft") {
|
||||
await prisma.skillReview.deleteMany({ where: { skillId: skill.id } });
|
||||
await prisma.reviewGenerationLog.deleteMany({ where: { skillId: skill.id } });
|
||||
await prisma.skill.delete({ where: { id: skill.id } });
|
||||
console.log(`🗑️ 已删除: ${skill.name}`);
|
||||
cleaned++;
|
||||
} else if (isNonAI) {
|
||||
await prisma.skill.update({
|
||||
where: { id: skill.id },
|
||||
data: { status: "draft" },
|
||||
});
|
||||
console.log(`📝 已标记为draft: ${skill.name}`);
|
||||
cleaned++;
|
||||
}
|
||||
}
|
||||
|
||||
if (cleaned === 0) console.log("✅ 没有需要清理的误入数据");
|
||||
else console.log(`\n✅ 已清理 ${cleaned} 条数据`);
|
||||
}
|
||||
|
||||
main()
|
||||
.catch((e) => { console.error("💥 清理失败:", e.message); process.exit(1); })
|
||||
.finally(() => prisma.$disconnect());
|
||||
Reference in New Issue
Block a user