start_db_for_test.sh 721 B

1234567891011121314151617181920212223242526
  1. #!/usr/bin/env bash
  2. set -euo pipefail
  3. CONTAINER_NAME="rust-test-pg"
  4. DB_USER="test"
  5. DB_PASS="test"
  6. DB_NAME="testdb"
  7. DB_PORT="5433"
  8. echo "Starting fresh PostgreSQL container..."
  9. docker run -d --rm \
  10. --name "${CONTAINER_NAME}" \
  11. -e POSTGRES_USER="${DB_USER}" \
  12. -e POSTGRES_PASSWORD="${DB_PASS}" \
  13. -e POSTGRES_DB="${DB_NAME}" \
  14. -p ${DB_PORT}:5432 \
  15. postgres:16
  16. echo "Waiting for PostgreSQL to be ready and database '${DB_NAME}' to exist..."
  17. until docker exec -e PGPASSWORD="${DB_PASS}" "${CONTAINER_NAME}" \
  18. psql -U "${DB_USER}" -d "${DB_NAME}" -c "SELECT 1;" >/dev/null 2>&1; do
  19. sleep 0.5
  20. done
  21. export DATABASE_URL="host=localhost user=${DB_USER} password=${DB_PASS} dbname=${DB_NAME} port=${DB_PORT}"