Scripts para migrar MongoDB con Docker
En hola.cloud nos hemos migrado un MongoDB 3.6 entre máquinas. Para asegurar que no tenemos contratiempos con las versiones, hemos utilizado exactamente la misma versión con las imágenes Docker ofiales. Dejo por aquí un par de scripts que nos han venido bien.
export.sh
#!/bin/bash
# check argument
if [ -z "${1:-}" ]; then
echo "Use: $0 <folder_name>"
exit 1
fi
BACKUP_DIR="$1"
mkdir -p "$BACKUP_DIR"
docker run --rm --network host \
-v $(pwd)/$BACKUP_DIR:/backup \
mongo:3.6 \
bash -c 'mongodump --host 127.0.0.1 --port 27017 --out /backup'
import.sh
#!/bin/bash
set -euo pipefail
# check argument
if [ -z "${1:-}" ]; then
echo "Use: $0 <backup_folder>"
exit 1
fi
BACKUP_DIR="$1"
if [ ! -d "$BACKUP_DIR" ]; then
echo "Error: folder '$BACKUP_DIR' does NOT exist"
exit 1
fi
docker run --rm --network host \
-v "$(pwd)/$BACKUP_DIR":/backup \
mongo:3.6 \
bash -c "mongorestore --host 127.0.0.1 --port 27017 /backup"
shell.sh
#!/bin/bash
set -euo pipefail
docker run -ti --rm --network host \
-v "$(pwd)/shell":/shell \
mongo:3.6 \
bash -c "mongo --host 127.0.0.1 --port 27017"