39 lines
1.5 KiB
Bash
Executable File
39 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
# Nuke dev seed user and re-seed. Run inside the container:
|
|
# docker exec -it <container> 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!"
|