Files
ims/db/05-verify.sh
T

48 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
# Usage: SUPABASE_DB_URL="postgresql://postgres:..." bash db/05-verify.sh
set -e
SERVER="setia@ims.setia.com.my"
PORT=9321
echo "=== IMS Data Migration Verification ==="
echo ""
echo "--- Table row counts on NEW server ---"
ssh -p "$PORT" "$SERVER" "sudo -u postgres psql -d ims" <<'ENDSQL'
SELECT
tablename,
n_live_tup AS row_count
FROM pg_stat_user_tables
ORDER BY tablename;
ENDSQL
if [ -n "$SUPABASE_DB_URL" ]; then
echo ""
echo "--- Table row counts on SUPABASE (source) ---"
psql "$SUPABASE_DB_URL" <<'ENDSQL'
SELECT
tablename,
n_live_tup AS row_count
FROM pg_stat_user_tables
WHERE schemaname = 'public'
ORDER BY tablename;
ENDSQL
fi
echo ""
echo "--- Users with NULL password_hash (should be 0) ---"
ssh -p "$PORT" "$SERVER" "sudo -u postgres psql -d ims -c \"SELECT count(*) FROM users WHERE password_hash IS NULL;\""
echo ""
echo "--- Evidence files row count vs filesystem count ---"
ssh -p "$PORT" "$SERVER" "sudo -u postgres psql -d ims -c \"SELECT count(*) AS db_evidence_rows FROM evidence_files WHERE deleted = false;\""
ssh -p "$PORT" "$SERVER" "find /var/lib/ims/evidence -type f | wc -l"
echo ""
echo "--- pgvector embeddings check ---"
ssh -p "$PORT" "$SERVER" "sudo -u postgres psql -d ims -c \"SELECT count(*) AS incidents_with_embedding FROM incidents WHERE embedding IS NOT NULL;\""
echo ""
echo "=== Verification complete. Compare counts above. ==="