57 lines
1.7 KiB
Bash
57 lines
1.7 KiB
Bash
#!/bin/sh
|
|
set -e
|
|
|
|
# Keep DATABASE_URL consistent for every Prisma command
|
|
export DATABASE_URL="${DATABASE_URL:-postgresql://innungsapp:innungsapp@postgres:5432/innungsapp?schema=public}"
|
|
MIGRATIONS_DIR="./packages/shared/prisma/migrations"
|
|
|
|
# Debug: Check environment variables
|
|
echo "========================================"
|
|
echo "Environment Variables Check:"
|
|
echo "========================================"
|
|
echo "DATABASE_URL: $DATABASE_URL"
|
|
echo "BETTER_AUTH_URL: ${BETTER_AUTH_URL:-[not set]}"
|
|
echo "BETTER_AUTH_BASE_URL: ${BETTER_AUTH_BASE_URL:-[not set]}"
|
|
if [ -n "$BETTER_AUTH_SECRET" ]; then
|
|
echo "BETTER_AUTH_SECRET: [set]"
|
|
else
|
|
echo "BETTER_AUTH_SECRET: [not set]"
|
|
fi
|
|
echo "NEXT_PUBLIC_APP_URL: ${NEXT_PUBLIC_APP_URL:-[not set]}"
|
|
echo "NODE_ENV: ${NODE_ENV:-[not set]}"
|
|
echo "========================================"
|
|
echo ""
|
|
|
|
run_with_retries() {
|
|
attempt=1
|
|
max_attempts=20
|
|
|
|
while [ "$attempt" -le "$max_attempts" ]; do
|
|
if "$@"; then
|
|
return 0
|
|
fi
|
|
|
|
if [ "$attempt" -eq "$max_attempts" ]; then
|
|
echo "Command failed after ${max_attempts} attempts."
|
|
return 1
|
|
fi
|
|
|
|
echo "Database not ready yet. Retry ${attempt}/${max_attempts} in 3s..."
|
|
attempt=$((attempt + 1))
|
|
sleep 3
|
|
done
|
|
}
|
|
|
|
# Prefer migration-based deploys. Fall back to db push when no migrations exist yet.
|
|
set -- "$MIGRATIONS_DIR"/*/migration.sql
|
|
if [ -f "$1" ]; then
|
|
echo "Applying Prisma migrations..."
|
|
run_with_retries npx prisma migrate deploy --schema=./packages/shared/prisma/schema.prisma
|
|
else
|
|
echo "No Prisma migrations found. Syncing schema with db push..."
|
|
run_with_retries npx prisma db push --skip-generate --schema=./packages/shared/prisma/schema.prisma
|
|
fi
|
|
|
|
echo "Starting Next.js server..."
|
|
exec node apps/admin/server.js
|