45 lines
1.2 KiB
Bash
Executable File
45 lines
1.2 KiB
Bash
Executable File
#!/bin/sh
|
|
set -eu
|
|
|
|
if ! command -v psql >/dev/null 2>&1; then
|
|
echo "psql not found" >&2
|
|
exit 1
|
|
fi
|
|
|
|
if [ "${1:-}" = "" ]; then
|
|
echo "Usage: $0 \"postgres://user:pass@host:5432/db?sslmode=disable\"" >&2
|
|
exit 1
|
|
fi
|
|
|
|
DSN="$1"
|
|
|
|
VIEWS="
|
|
onec_kpi_unposted_documents
|
|
onec_kpi_sales_today
|
|
onec_kpi_overdue_receivables
|
|
onec_kpi_posting_errors_24h
|
|
onec_kpi_data_freshness
|
|
"
|
|
|
|
echo "[*] Checking required KPI views"
|
|
for view_name in $VIEWS; do
|
|
exists="$(psql "$DSN" -X -A -t -v ON_ERROR_STOP=1 -c "SELECT EXISTS (
|
|
SELECT 1
|
|
FROM information_schema.views
|
|
WHERE table_name='${view_name}'
|
|
);")"
|
|
if [ "$exists" != "t" ]; then
|
|
echo "[-] Missing view: $view_name" >&2
|
|
exit 2
|
|
fi
|
|
done
|
|
|
|
echo "[*] Running test queries"
|
|
psql "$DSN" -X -v ON_ERROR_STOP=1 -c "SELECT * FROM onec_kpi_unposted_documents LIMIT 5;"
|
|
psql "$DSN" -X -v ON_ERROR_STOP=1 -c "SELECT * FROM onec_kpi_sales_today LIMIT 5;"
|
|
psql "$DSN" -X -v ON_ERROR_STOP=1 -c "SELECT * FROM onec_kpi_overdue_receivables LIMIT 5;"
|
|
psql "$DSN" -X -v ON_ERROR_STOP=1 -c "SELECT * FROM onec_kpi_posting_errors_24h LIMIT 5;"
|
|
psql "$DSN" -X -v ON_ERROR_STOP=1 -c "SELECT * FROM onec_kpi_data_freshness LIMIT 5;"
|
|
|
|
echo "[+] KPI views are valid"
|