#!/bin/sh set -e PRISMA_BIN="./node_modules/.bin/prisma" SCHEMA="prisma/schema.prisma" if [ ! -f "$PRISMA_BIN" ]; then echo "Prisma CLI not found at $PRISMA_BIN" exit 1 fi export PRISMA_HIDE_UPDATE_MESSAGE=1 run_migrate() { "$PRISMA_BIN" migrate deploy --schema "$SCHEMA" --skip-generate } echo "Applying database migrations (schema=$SCHEMA)..." i=0 while [ "$i" -lt 15 ]; do if run_migrate; then break fi i=$((i + 1)) if [ "$i" -eq 15 ]; then echo "----------------------------------------------------------------" echo "prisma migrate deploy failed after 15 attempts." echo "Check: docker logs toir-server" echo "If the DB volume has a broken migration history, remove volume" echo "kis-toir_postgres-data once (all DB data lost) or fix _prisma_migrations." echo "--- prisma migrate status ---" "$PRISMA_BIN" migrate status --schema "$SCHEMA" || true echo "----------------------------------------------------------------" exit 1 fi echo "Migrate failed or DB not ready; retrying in 2s ($i/15)..." sleep 2 done echo "Starting NestJS..." exec node dist/main.js