Bootstrap tenta multiplos DSNs para Oracle
This commit is contained in:
@@ -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 - <<PY >/dev/null 2>&1
|
||||
echo "[1/5] Aguardando Oracle..."
|
||||
DSN_HOST=""
|
||||
for candidate in "${DSN_CANDIDATES[@]}"; do
|
||||
echo " Testando ${candidate}..."
|
||||
if $VENV_PY - <<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 - <<PY
|
||||
|
||||
Reference in New Issue
Block a user