#!/usr/bin/env bash # Starts a throwaway PostgreSQL on port 5433 with a database called "lab" (needs PostgreSQL binaries installed). # Run as a non-root user. Adjust PGBIN for your platform. set -euo pipefail PGBIN="${PGBIN:-/usr/lib/postgresql/16/bin}" DATA="${PGDATA_DIR:-/tmp/pg-lab/data}" mkdir -p "$(dirname "$DATA")" [ -d "$DATA" ] || "$PGBIN/initdb" -D "$DATA" -A trust -U postgres >/dev/null "$PGBIN/pg_ctl" -D "$DATA" -o "-p 5433 -k /tmp" -l "$(dirname "$DATA")/pg.log" start sleep 2 psql -h localhost -p 5433 -U postgres -tc "select 1 from pg_database where datname='lab'" | grep -q 1 \ || psql -h localhost -p 5433 -U postgres -c "create database lab"