start_db_for_test.sh 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637
  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. docker exec -e PGPASSWORD="${DB_PASS}" "${CONTAINER_NAME}" \
  22. psql -U "${DB_USER}" -d "${DB_NAME}" -c "CREATE DATABASE mintdb;"
  23. docker exec -e PGPASSWORD="${DB_PASS}" "${CONTAINER_NAME}" \
  24. psql -U "${DB_USER}" -d "${DB_NAME}" -c "CREATE DATABASE mintdb_auth;"
  25. # Export environment variables for both main and auth databases
  26. export DATABASE_URL="host=localhost user=${DB_USER} password=${DB_PASS} dbname=${DB_NAME} port=${DB_PORT}"
  27. export CDK_MINTD_POSTGRES_URL="postgresql://${DB_USER}:${DB_PASS}@localhost:${DB_PORT}/mintdb"
  28. export CDK_MINTD_AUTH_POSTGRES_URL="postgresql://${DB_USER}:${DB_PASS}@localhost:${DB_PORT}/mintdb_auth"
  29. echo "Database URLs configured:"
  30. echo "Main database: ${CDK_MINTD_POSTGRES_URL}"
  31. echo "Auth database: ${CDK_MINTD_AUTH_POSTGRES_URL}"