Is there any way to restore your site from backup in the terminal?

Aquí está el script de trabajo que utilizo para restaurar producción a desarrollo y pruebas:

#!/bin/sh
set +x
set -e
# Este script restaura la última copia de seguridad productiva al entorno de prueba/desarrollo
CONTAINER_NAME=app-test
LATEST_BACKUP=$(mc ls s3/backup-prod/default | tail -n 1 | cut -d ' ' -f 5)
mc cp s3/backup-prod/default/${LATEST_BACKUP} /tmp
# asegurar que /var/www/discourse/public/backups/default/ exista con la propiedad adecuada
docker exec -i ${CONTAINER_NAME} sh -c "mkdir -p /var/www/discourse/public/backups/default/ && chown -R discourse:www-data /var/www/discourse/public/backups/default/"
cat /tmp/${LATEST_BACKUP} | docker exec -i ${CONTAINER_NAME} sh -c "cat - > /var/www/discourse/public/backups/default/${LATEST_BACKUP}"
docker exec -i ${CONTAINER_NAME} sh -x << EOF
discourse enable_restore
rails runner "SiteSetting.set('backup_location', 'local')"
discourse restore ${LATEST_BACKUP}
discourse disable_restore
rm -f /var/www/discourse/public/backups/default/${LATEST_BACKUP}
EOF
# reconstruir contenedor
cd /var/lib/discourse/discourse_docker
stdbuf -oL -eL ./launcher rebuild ${CONTAINER_NAME} 2>&1 | sed 's/DISCOURSE_google_oauth2_client_secret=[^ ]*/DISCOURSE_google_oauth2_client_secret=***REDACTED***/g'
cd -
rm -f /tmp/${LATEST_BACKUP}

Faltaba rails runner "SiteSetting.set('backup_location', 'local')" y esto impedía la restauración desde el archivo tar de copia de seguridad.

Tenga en cuenta que la salida del script del lanzador tuvo que ser redactada, ya que revelaría secretos en su salida, especialmente cuando se realiza a través de un trabajo visible de CI/CD.