43 lines
1.3 KiB
Bash
Executable File
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
|