30 lines
1.2 KiB
Bash
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
|