Files

13 lines
665 B
Bash
Executable File

#!/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"