#!/usr/bin/env bash set -euo pipefail CONTAINER="db" DB_USER="postgres" DB_NAME="postgres" if ! docker inspect --format='{{.State.Running}}' "$CONTAINER" 2>/dev/null | grep -q true; then echo "ERROR: container '$CONTAINER' is not running" >&2 exit 1 fi echo "Ensuring indexes on '$DB_NAME' in container '$CONTAINER'..." docker exec -i "$CONTAINER" psql -U "$DB_USER" -d "$DB_NAME" <<'SQL' \set ON_ERROR_STOP on CREATE INDEX IF NOT EXISTS idx_gateways_mac ON gateways(mac); CREATE INDEX IF NOT EXISTS idx_tracker_zones_tracker ON tracker_zones(tracker); CREATE INDEX IF NOT EXISTS idx_tracks_gateway ON tracks(gateway); CREATE INDEX IF NOT EXISTS idx_tracks_tracker ON tracks(tracker); CREATE INDEX IF NOT EXISTS idx_tracks_uuid_ts ON tracks(uuid, timestamp); CREATE INDEX IF NOT EXISTS idx_tracks_tracker_ts ON tracks(tracker, timestamp); \echo 'Done.' SQL