27 lines
948 B
Bash
27 lines
948 B
Bash
|
|
#!/usr/bin/env bash
|
||
|
|
# Idempotent: ensures touchbase_test DB exists and both DBs have required extensions.
|
||
|
|
# Run after `docker-compose up -d postgres` if the init scripts didn't fire (bind-mount race on first start).
|
||
|
|
|
||
|
|
set -euo pipefail
|
||
|
|
|
||
|
|
PGUSER="${PGUSER:-touchbase}"
|
||
|
|
PGPASSWORD="${PGPASSWORD:-touchbase}"
|
||
|
|
PGHOST="${PGHOST:-localhost}"
|
||
|
|
PGPORT="${PGPORT:-5432}"
|
||
|
|
|
||
|
|
export PGPASSWORD
|
||
|
|
|
||
|
|
psql_run() { docker exec -e PGPASSWORD touchbase-postgres-1 psql -U "$PGUSER" -d "$1" -v ON_ERROR_STOP=1 -c "$2"; }
|
||
|
|
|
||
|
|
# Create test DB if missing
|
||
|
|
exists=$(docker exec -e PGPASSWORD touchbase-postgres-1 psql -U "$PGUSER" -d postgres -tAc "SELECT 1 FROM pg_database WHERE datname='touchbase_test'")
|
||
|
|
if [ -z "$exists" ]; then
|
||
|
|
psql_run postgres "CREATE DATABASE touchbase_test OWNER $PGUSER"
|
||
|
|
fi
|
||
|
|
|
||
|
|
for db in touchbase_dev touchbase_test; do
|
||
|
|
psql_run "$db" "CREATE EXTENSION IF NOT EXISTS btree_gist; CREATE EXTENSION IF NOT EXISTS pgcrypto;"
|
||
|
|
done
|
||
|
|
|
||
|
|
echo "DB bootstrap OK."
|