33 lines
1.2 KiB
Bash
33 lines
1.2 KiB
Bash
#!/bin/sh
|
|
set -e
|
|
|
|
echo "[sso-core] Применение схемы БД (Prisma migrate deploy → db push)..."
|
|
attempt=0
|
|
max_attempts=30
|
|
|
|
apply_prisma_schema() {
|
|
if npm --workspace @lendry/sso-core run prisma:migrate-deploy; then
|
|
echo "[sso-core] Миграции Prisma применены (migrate deploy)"
|
|
return 0
|
|
fi
|
|
echo "[sso-core] migrate deploy не выполнен — пробуем db push..."
|
|
npm --workspace @lendry/sso-core run prisma:push
|
|
}
|
|
|
|
while [ "$attempt" -lt "$max_attempts" ]; do
|
|
attempt=$((attempt + 1))
|
|
if apply_prisma_schema; then
|
|
echo "[sso-core] Схема БД синхронизирована"
|
|
break
|
|
fi
|
|
if [ "$attempt" -ge "$max_attempts" ]; then
|
|
echo "[sso-core] ОШИБКА: не удалось подключиться к PostgreSQL после ${max_attempts} попыток." >&2
|
|
echo "[sso-core] Проверьте POSTGRES_* в .env и пароль существующего volume postgres_data." >&2
|
|
exit 1
|
|
fi
|
|
echo "[sso-core] PostgreSQL недоступен или неверный пароль, повтор ${attempt}/${max_attempts}..."
|
|
sleep 3
|
|
done
|
|
|
|
exec node apps/sso-core/dist/main.js
|