Added utility scripts for GIF management: 1. regenerate-all-gifs.ts: - Regenerates GIF previews for all existing videos - Deletes old GIFs before creating new ones - Provides progress feedback and summary statistics - Useful for bulk GIF generation after deployment 2. check-gifs.ts: - Quick diagnostic to list all GIF records in database - Shows term names and GIF URLs - Useful for verifying GIF generation 3. insert-gif-test.ts: - Test script to verify GIF enum value works in database - Creates, verifies, and cleans up test GIF record - Includes Prisma query logging for debugging Usage: cd packages/backend npx tsx scripts/regenerate-all-gifs.ts npx tsx scripts/check-gifs.ts npx tsx scripts/insert-gif-test.ts Co-Authored-By: Auggie
54 lines
1.2 KiB
TypeScript
54 lines
1.2 KiB
TypeScript
import { PrismaClient, MediaKind } from '@prisma/client';
|
|
|
|
const prisma = new PrismaClient({
|
|
log: ['query', 'info', 'warn', 'error'],
|
|
});
|
|
|
|
async function testInsert() {
|
|
console.log('Testing GIF insert...\n');
|
|
|
|
try {
|
|
// Get first video
|
|
const video = await prisma.termMedia.findFirst({
|
|
where: { kind: MediaKind.VIDEO },
|
|
});
|
|
|
|
if (!video) {
|
|
console.log('No video found');
|
|
return;
|
|
}
|
|
|
|
console.log(`Found video: ${video.url}`);
|
|
console.log(`Term ID: ${video.termId}\n`);
|
|
|
|
// Try to insert GIF
|
|
const gif = await prisma.termMedia.create({
|
|
data: {
|
|
termId: video.termId,
|
|
kind: MediaKind.GIF,
|
|
url: '/uploads/gifs/test.gif',
|
|
},
|
|
});
|
|
|
|
console.log('✅ GIF created:', gif);
|
|
|
|
// Verify it exists
|
|
const check = await prisma.termMedia.findUnique({
|
|
where: { id: gif.id },
|
|
});
|
|
|
|
console.log('\n✅ Verification:', check);
|
|
|
|
// Clean up
|
|
await prisma.termMedia.delete({ where: { id: gif.id } });
|
|
console.log('\n✅ Cleaned up test record');
|
|
} catch (error) {
|
|
console.error('❌ Error:', error);
|
|
} finally {
|
|
await prisma.$disconnect();
|
|
}
|
|
}
|
|
|
|
testInsert();
|
|
|