55 lines
1.5 KiB
TypeScript
55 lines
1.5 KiB
TypeScript
// Temporary script to delete dev seed user and all related data.
|
|
// Usage: bun run scripts/nuke-dev-user.ts && bun run db:seed:dev
|
|
// Delete this file after use.
|
|
|
|
import { eq } from "drizzle-orm";
|
|
import { db } from "../src/db/index.ts";
|
|
import {
|
|
apiKeys,
|
|
categories,
|
|
items,
|
|
sessions,
|
|
settings,
|
|
setupItems,
|
|
setups,
|
|
threadCandidates,
|
|
threads,
|
|
users,
|
|
} from "../src/db/schema.ts";
|
|
|
|
const [user] = await db
|
|
.select()
|
|
.from(users)
|
|
.where(eq(users.logtoSub, "dev-user-seed"))
|
|
.limit(1);
|
|
|
|
if (!user) {
|
|
console.log("No dev user found");
|
|
process.exit(0);
|
|
}
|
|
|
|
const uid = user.id;
|
|
|
|
// Delete in FK order
|
|
const userSetups = await db.select().from(setups).where(eq(setups.userId, uid));
|
|
for (const s of userSetups)
|
|
await db.delete(setupItems).where(eq(setupItems.setupId, s.id));
|
|
await db.delete(setups).where(eq(setups.userId, uid));
|
|
|
|
const userThreads = await db
|
|
.select()
|
|
.from(threads)
|
|
.where(eq(threads.userId, uid));
|
|
for (const t of userThreads)
|
|
await db.delete(threadCandidates).where(eq(threadCandidates.threadId, t.id));
|
|
await db.delete(threads).where(eq(threads.userId, uid));
|
|
|
|
await db.delete(items).where(eq(items.userId, uid));
|
|
await db.delete(settings).where(eq(settings.userId, uid));
|
|
await db.delete(apiKeys).where(eq(apiKeys.userId, uid));
|
|
await db.delete(sessions).where(eq(sessions.userId, uid));
|
|
await db.delete(categories).where(eq(categories.userId, uid));
|
|
await db.delete(users).where(eq(users.id, uid));
|
|
|
|
console.log("Dev user and all related data deleted");
|