chore: diagnostic and fix script for catalog seeding
Some checks failed
CI / deploy (push) Has been cancelled
CI / e2e (push) Has been cancelled
CI / ci (push) Has been cancelled

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-13 14:57:27 +02:00
parent 9864a09fc1
commit 32fa261ec2

27
scripts/fixing.sh Executable file
View File

@@ -0,0 +1,27 @@
set -e
echo "=== Step 1: Check global_items columns ==="
bun -e 'import { db } from "./src/db/index.ts"; import { sql } from "drizzle-orm"; const result = await db.execute(sql`SELECT column_name FROM information_schema.columns WHERE table_name = '\''global_items'\'' ORDER BY ordinal_position`); console.log(result.rows.map(r => r.column_name));'
echo ""
echo "=== Step 2: Push schema (adds any missing columns) ==="
bun run db:push
echo ""
echo "=== Step 3: Nuke all data ==="
bun -e 'import { db } from "./src/db/index.ts"; import { apiKeys, categories, globalItemTags, globalItems, items, oauthCodes, oauthTokens, settings, setupItems, setups, tags, threadCandidates, threads, users } from "./src/db/schema.ts"; await db.delete(setupItems); await db.delete(setups); await db.delete(threadCandidates); await db.delete(threads); await db.delete(items); await db.delete(settings); await db.delete(apiKeys); await db.delete(oauthTokens); await db.delete(oauthCodes); await db.delete(categories); await db.delete(users); await db.delete(globalItemTags); await db.delete(tags); await db.delete(globalItems); console.log("Nuke complete");'
echo ""
echo "=== Step 4: Re-seed ==="
bun run db:seed:dev
echo ""
echo "=== Step 5: Verify hobby tags exist ==="
bun -e 'import { db } from "./src/db/index.ts"; import { tags, globalItemTags } from "./src/db/schema.ts"; import { inArray } from "drizzle-orm"; const hobbyNames = ["bikepacking","cycling","camping","hiking","backpacking","climbing","running"]; const found = await db.select().from(tags).where(inArray(tags.name, hobbyNames)); console.log("Hobby tags found:", found.map(t => t.name)); const allAssignments = await db.select().from(globalItemTags); console.log("Total tag assignments:", allAssignments.length);'
echo ""
echo "=== Step 6: Test popular-items query ==="
bun -e 'import { getPopularItemsByTags } from "./src/server/services/discovery.service.ts"; const results = await getPopularItemsByTags(undefined, ["bikepacking","cycling","camping"], 5); console.log("Popular items for bikepacking:", results.length); for (const r of results) console.log(" -", r.brand, r.model);'
echo ""
echo "=== Done ==="