Bootstrap tenta multiplos DSNs para Oracle
This commit is contained in:
@@ -2,22 +2,37 @@
|
|||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
# Configs
|
# 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"}
|
API_URL=${API_URL:-"http://localhost:8000"}
|
||||||
VENV_PY="./venv/bin/python"
|
VENV_PY="./venv/bin/python"
|
||||||
|
|
||||||
echo "[1/5] Aguardando Oracle em ${DSN_HOST}..."
|
echo "[1/5] Aguardando Oracle..."
|
||||||
until $VENV_PY - <<PY >/dev/null 2>&1
|
DSN_HOST=""
|
||||||
|
for candidate in "${DSN_CANDIDATES[@]}"; do
|
||||||
|
echo " Testando ${candidate}..."
|
||||||
|
if $VENV_PY - <<PY >/dev/null 2>&1
|
||||||
import cx_Oracle
|
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=conn.cursor();cur.execute("select 1 from dual");cur.fetchone()
|
||||||
cur.close();conn.close()
|
cur.close();conn.close()
|
||||||
PY
|
PY
|
||||||
do
|
then
|
||||||
echo " Oracle ainda indisponível... tentando de novo em 5s"
|
DSN_HOST="${candidate}"
|
||||||
sleep 5
|
break
|
||||||
|
fi
|
||||||
|
sleep 2
|
||||||
done
|
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..."
|
echo "[2/5] Conferindo contagem atual..."
|
||||||
COUNT=$($VENV_PY - <<PY
|
COUNT=$($VENV_PY - <<PY
|
||||||
|
|||||||
Reference in New Issue
Block a user