feat: Add scripts to copy thumbnails and generate dummy items, and improve item deletion to handle avatar foreign key constraints.

This commit is contained in:
x
2026-01-24 17:39:01 +01:00
parent 1646fdba56
commit 2be5b33183

View File

@@ -41,7 +41,23 @@ import { promises as fs } from "fs";
pendingCount++;
} catch {
// Not in either? Broken.
console.log(`Item ${item.id} (${item.dest}) missing from both locations. Deleting...`);
console.log(`Item ${item.id} (${item.dest}) missing from both locations. Cleaning up...`);
// 2. Fix FK constraint: Check if this item is used as an avatar
try {
// Find a safe fallback avatar (active item)
const fallback = await db`select id from items where active = true limit 1`;
if (fallback.length > 0) {
const safeId = fallback[0].id;
const users = await db`update "user_options" set avatar = ${safeId} where avatar = ${item.id} returning user_id`;
if (users.length > 0) {
console.log(` > Reassigned avatar for ${users.length} users (from ${item.id} to ${safeId})`);
}
}
} catch (fkErr) {
console.error(` ! Error fixing avatar FK for ${item.id}:`, fkErr.message);
}
await db`delete from items where id = ${item.id}`;
brokenCount++;
}