Files
airflow-greenplum/pxf/init/start_greenplum_with_pxf.sh
T
2026-01-08 22:02:57 +03:00

43 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
ensure_script="/opt/pxf-scripts/ensure_pxf_bookings.sh"
ensure_pxf_extension() {
local gp_user="${GREENPLUM_USER:-gpadmin}"
local gp_db="${GREENPLUM_DATABASE_NAME:-gp_dwh}"
local gp_password="${GREENPLUM_PASSWORD:-gpadmin}"
local attempts=60
if [ "${GREENPLUM_PXF_ENABLE:-false}" != "true" ]; then
return 0
fi
for _ in $(seq 1 "${attempts}"); do
if /usr/local/greenplum-db/bin/pg_isready \
-h 127.0.0.1 -p 5432 -U "${gp_user}" -d "${gp_db}" >/dev/null 2>&1; then
if PGPASSWORD="${gp_password}" /usr/local/greenplum-db/bin/psql \
-h 127.0.0.1 -p 5432 -U "${gp_user}" -d "${gp_db}" \
-v ON_ERROR_STOP=1 -c "CREATE EXTENSION IF NOT EXISTS pxf;" >/dev/null; then
echo "INFO - extension pxf готово"
else
echo "WARN - не удалось создать extension pxf"
fi
return 0
fi
sleep 2
done
echo "WARN - Greenplum не готов, пропускаем CREATE EXTENSION pxf"
}
if [ -f "${ensure_script}" ]; then
"${ensure_script}"
else
echo "WARN - не найден ensure-скрипт PXF: ${ensure_script}"
fi
ensure_pxf_extension &
exec /start_gpdb.sh