42 lines
1.1 KiB
Bash
Executable File
42 lines
1.1 KiB
Bash
Executable File
#!/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"
|
|
}
|
|
|
|
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/src/main.js
|