#!/bin/bash # Nuke dev seed user and re-seed. Run inside the container: # docker exec -it bash scripts/nuke-and-reseed.sh # Delete after use. set -e echo "Deleting dev seed user..." bun -e " 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; 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 deleted'); " echo "Re-seeding..." bun run db:seed:dev echo "Done!"