Files

30 lines
1.2 KiB
Bash

#!/bin/sh
set -e
echo "Applying Prisma schema to PostgreSQL..."
node ./node_modules/prisma/build/index.js db push --skip-generate --accept-data-loss
echo "Ensuring high-scale PostgreSQL pg_trgm GIN indexes..."
node -e '
const { PrismaClient } = require("@prisma/client");
const prisma = new PrismaClient();
async function main() {
try {
await prisma.$executeRawUnsafe(`CREATE EXTENSION IF NOT EXISTS pg_trgm;`);
await prisma.$executeRawUnsafe(`CREATE INDEX IF NOT EXISTS note_title_trgm_idx ON "Note" USING gin ("title" gin_trgm_ops);`);
await prisma.$executeRawUnsafe(`CREATE INDEX IF NOT EXISTS note_content_text_trgm_idx ON "Note" USING gin ("contentText" gin_trgm_ops);`);
await prisma.$executeRawUnsafe(`CREATE INDEX IF NOT EXISTS attachment_extracted_text_trgm_idx ON "Attachment" USING gin ("extractedText" gin_trgm_ops);`);
await prisma.$executeRawUnsafe(`CREATE INDEX IF NOT EXISTS tag_name_trgm_idx ON "Tag" USING gin ("name" gin_trgm_ops);`);
console.log("pg_trgm GIN indexes verified successfully.");
} catch (err) {
console.error("Warning ensuring pg_trgm indexes:", err.message);
} finally {
await prisma.$disconnect();
}
}
main();
'
echo "Starting Everclone server on port 3000..."
exec node server.js