From 0a25502fcf9306b3a87050fd6b352109651358d8 Mon Sep 17 00:00:00 2001 From: blazSmehov Date: Wed, 22 Apr 2026 10:16:15 +0200 Subject: [PATCH] chore: add runtime reindexing script --- scripts/db/ensure_indexes.sh | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100755 scripts/db/ensure_indexes.sh diff --git a/scripts/db/ensure_indexes.sh b/scripts/db/ensure_indexes.sh new file mode 100755 index 0000000..ab586eb --- /dev/null +++ b/scripts/db/ensure_indexes.sh @@ -0,0 +1,26 @@ +#!/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