38 lines
1.4 KiB
TypeScript
38 lines
1.4 KiB
TypeScript
/**
|
||
* 清空經營工作區資料,保留 User / Session / Account / Setting / AutomationRule。
|
||
* 用法:npx tsx scripts/clear-workspace-data.ts
|
||
*/
|
||
import { PrismaClient } from "@prisma/client";
|
||
|
||
const prisma = new PrismaClient();
|
||
|
||
async function main() {
|
||
const counts = {
|
||
outreachDrafts: await prisma.outreachDraft.deleteMany(),
|
||
outreachTargets: await prisma.outreachTarget.deleteMany(),
|
||
replyDrafts: await prisma.replyDraft.deleteMany(),
|
||
inboundReplies: await prisma.inboundReply.deleteMany(),
|
||
performanceSnapshots: await prisma.performanceSnapshot.deleteMany(),
|
||
published: await prisma.published.deleteMany(),
|
||
drafts: await prisma.draft.deleteMany(),
|
||
replies: await prisma.reply.deleteMany(),
|
||
scans: await prisma.scan.deleteMany(),
|
||
topics: await prisma.topic.deleteMany(),
|
||
productProfiles: await prisma.productProfile.deleteMany(),
|
||
backgroundJobs: await prisma.backgroundJob.deleteMany(),
|
||
actionLogs: await prisma.actionLog.deleteMany(),
|
||
};
|
||
|
||
console.log("已清理工作區資料:");
|
||
for (const [table, result] of Object.entries(counts)) {
|
||
console.log(` ${table}: ${result.count} 筆`);
|
||
}
|
||
console.log("\n保留:使用者、登入 session、經營帳號、系統設定、自動化規則、Threads 連線。");
|
||
}
|
||
|
||
main()
|
||
.catch((err) => {
|
||
console.error(err);
|
||
process.exit(1);
|
||
})
|
||
.finally(() => prisma.$disconnect()); |