// 清空投票相关测试数据,准备重新测试。 // // 清:votes / fan_supports / daily_quota / sign_ins / risk_logs / ranking_snapshots // reset:artists.vote_count = 0, artists.current_rank = null // 保留:users / artists 配置 / activity_config / invitations import { PrismaClient } from "@prisma/client"; const prisma = new PrismaClient({ log: ["error"] }); console.log("=== 清空投票测试数据 ===\n"); // 跑前 snapshot const before = { votes: await prisma.vote.count(), fanSupports: await prisma.fanSupport.count(), dailyQuotas: await prisma.dailyQuota.count(), signIns: await prisma.signIn.count(), riskLogs: await prisma.riskLog.count(), snapshots: await prisma.rankingSnapshot.count(), artistsWithVotes: await prisma.artist.count({ where: { voteCount: { gt: 0 } } }), }; console.log("清前:", before); await prisma.$transaction( async (tx) => { await tx.vote.deleteMany({}); await tx.fanSupport.deleteMany({}); await tx.dailyQuota.deleteMany({}); await tx.signIn.deleteMany({}); await tx.riskLog.deleteMany({}); await tx.rankingSnapshot.deleteMany({}); // reset artists 缓存 await tx.artist.updateMany({ data: { voteCount: 0, currentRank: null }, }); }, { timeout: 30000 }, ); const after = { votes: await prisma.vote.count(), fanSupports: await prisma.fanSupport.count(), dailyQuotas: await prisma.dailyQuota.count(), signIns: await prisma.signIn.count(), riskLogs: await prisma.riskLog.count(), snapshots: await prisma.rankingSnapshot.count(), artistsWithVotes: await prisma.artist.count({ where: { voteCount: { gt: 0 } } }), }; console.log("\n清后:", after); // 同时确认保留了什么 const preserved = { users: await prisma.user.count(), artists: await prisma.artist.count(), activityConfig: await prisma.activityConfig.count(), }; console.log("保留:", preserved); await prisma.$disconnect(); console.log("\n✓ 完成");