init-db.sh 601 B

123456789101112131415161718192021222324
  1. #!/bin/bash
  2. set -e
  3. trap 'echo "An error occurred. Exiting..."; exit 1' ERR
  4. cmd="$@"
  5. echo "Waiting for PostgreSQL to be ready..."
  6. until node -e "
  7. const { Client } = require('pg');
  8. const c = new Client({ connectionString: process.env.DATABASE_URL });
  9. c.connect().then(() => { c.end(); process.exit(0); }).catch(() => process.exit(1));
  10. " 2>/dev/null; do
  11. echo "PostgreSQL is unavailable - sleeping 2s..."
  12. sleep 2
  13. done
  14. echo "PostgreSQL is ready!"
  15. echo "Applying database schema..."
  16. npx prisma db push --accept-data-loss
  17. echo "Schema applied successfully!"
  18. echo "Starting application..."
  19. exec $cmd