You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ClinicalTrialsDataProcessing/containers/AACT_Reloader/StartRestoreContainer.sh

43 lines
1.1 KiB
Bash

#!/bin/bash
RESTORE_DUMP_GZ="${1:-aact_db_backup_20250107_133822.sql.gz}"
POSTGRES_USER=root
POSTGRES_PASSWORD=root
POSTGRES_DB=aact_db
CONTAINER_NAME="${POSTGRES_DB}-restored-$(date -I)"
#start container
podman run \
-e POSTGRES_PASSWORD="${POSTGRES_PASSWORD}" \
-e POSTGRES_USER="${POSTGRES_USER}" \
-e POSTGRES_DB="${POSTGRES_DB}" \
--name "${CONTAINER_NAME}" \
--detach \
--network research-network \
--shm-size=512mb \
--volume ./backup/:/backup/ \
-p 5432:5432\
postgres:14-alpine
sleep 10
# Function to check if PostgreSQL is ready
function check_postgres {
podman exec -i "${CONTAINER_NAME}" psql -h localhost -U "${POSTGRES_USER}" -d "${POSTGRES_DB}" -c '\q' > /dev/null 2>&1
}
# Wait for PostgreSQL to be ready
until check_postgres; do
echo "Waiting for PostgreSQL to be ready..."
sleep 4
done
echo "PostgreSQL is ready. Restoring the database..."
# Decompress the dump file and restore it to the database
podman exec -i "${CONTAINER_NAME}" sh -c "gunzip -c /backup/${RESTORE_DUMP_GZ} | psql -h localhost -U ${POSTGRES_USER} -d ${POSTGRES_DB}"
echo "Database restoration complete."