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:
@@ -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++;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user