Created scripts/apply-migration.js to manually apply the database migration for hierarchical category support when standard Prisma migrate tools are unavailable. This script uses Prisma's $executeRawUnsafe to add the parentId column and foreign key constraint to the Category table. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
35 lines
970 B
JavaScript
35 lines
970 B
JavaScript
const { PrismaClient } = require('@prisma/client');
|
|
|
|
const prisma = new PrismaClient();
|
|
|
|
async function main() {
|
|
try {
|
|
console.log('Applying migration...');
|
|
|
|
// Add parentId column if it doesn't exist
|
|
await prisma.$executeRawUnsafe(`
|
|
ALTER TABLE "Category" ADD COLUMN "parentId" TEXT;
|
|
`).catch(() => {
|
|
console.log('Column parentId already exists or has an issue');
|
|
});
|
|
|
|
// Add foreign key constraint if it doesn't exist
|
|
await prisma.$executeRawUnsafe(`
|
|
ALTER TABLE "Category" ADD CONSTRAINT "Category_parentId_fkey"
|
|
FOREIGN KEY ("parentId") REFERENCES "Category"("id")
|
|
ON DELETE CASCADE ON UPDATE CASCADE;
|
|
`).catch(() => {
|
|
console.log('Foreign key already exists or has an issue');
|
|
});
|
|
|
|
console.log('Migration applied successfully!');
|
|
} catch (error) {
|
|
console.error('Error applying migration:', error);
|
|
process.exit(1);
|
|
} finally {
|
|
await prisma.$disconnect();
|
|
}
|
|
}
|
|
|
|
main();
|