diff --git a/backend/scripts/bootstrap_ranking.sh b/backend/scripts/bootstrap_ranking.sh index 7ad394b..8c6afc9 100644 --- a/backend/scripts/bootstrap_ranking.sh +++ b/backend/scripts/bootstrap_ranking.sh @@ -2,22 +2,37 @@ set -euo pipefail # Configs -DSN_HOST=${ORACLE_LOCAL_DSN:-"127.0.0.1:1521/XEPDB1"} +DSN_CANDIDATES=() +if [ -n "${ORACLE_LOCAL_DSN:-}" ]; then + DSN_CANDIDATES+=("${ORACLE_LOCAL_DSN}") +fi +DSN_CANDIDATES+=("127.0.0.1:1521/XEPDB1" "oracle18c:1521/XEPDB1" "mqapilc_oracle18c:1521/XEPDB1") API_URL=${API_URL:-"http://localhost:8000"} VENV_PY="./venv/bin/python" -echo "[1/5] Aguardando Oracle em ${DSN_HOST}..." -until $VENV_PY - </dev/null 2>&1 +echo "[1/5] Aguardando Oracle..." +DSN_HOST="" +for candidate in "${DSN_CANDIDATES[@]}"; do + echo " Testando ${candidate}..." + if $VENV_PY - </dev/null 2>&1 import cx_Oracle -conn=cx_Oracle.connect("local123","local123","${DSN_HOST}") +conn=cx_Oracle.connect("local123","local123","${candidate}") cur=conn.cursor();cur.execute("select 1 from dual");cur.fetchone() cur.close();conn.close() PY -do - echo " Oracle ainda indisponível... tentando de novo em 5s" - sleep 5 + then + DSN_HOST="${candidate}" + break + fi + sleep 2 done -echo "Oracle OK." + +if [ -z "$DSN_HOST" ]; then + echo "ERRO: não foi possível conectar ao Oracle em nenhum dos DSN candidatos." + exit 1 +fi + +echo "Oracle OK em ${DSN_HOST}." echo "[2/5] Conferindo contagem atual..." COUNT=$($VENV_PY - <