#! /bin/sh # if [ "$#" -ne 1 ]; then echo "Usage: $0 " >&2 exit 1 fi if ! [ -e "${1}" ]; then echo "$1 not found" >&2 exit 1 fi set -a . "${PWD}/.env" set +a mkdir --parents "${PWD}/tmp" dump_filename_path="${1}" docker compose up db -d while ! docker ps -q -f name="${PREFIX}-db"; do echo "Waiting for the db container to be up and running..." sleep 1 done while ! docker exec "${PREFIX}-db" /bin/sh -c "mysqladmin ping -h 127.0.0.1 -P 3306 --protocol=tcp -u root -p${DB_ROOT_PASSWORD} --silent"; do echo "Waiting for the mysql server in ${PREFIX}-db to be up and running..." sleep 1 done echo "copying mysql dump to db container" docker cp "${dump_filename_path}" "${PREFIX}"-db:/tmp/dump.sql echo "dropping ${DB_NAME}" docker exec "${PREFIX}-db" /bin/sh -c "mysqladmin --force -uroot -p${DB_ROOT_PASSWORD} drop ${DB_NAME}" echo "creating ${DB_NAME}" docker exec "${PREFIX}-db" /bin/sh -c "mysqladmin -uroot -p${DB_ROOT_PASSWORD} create ${DB_NAME}" echo "run this command in another terminal/window to monitor progress:" echo "docker exec -it watch -n1 ${PREFIX}-db du /var/lib/mysql/${DB_NAME}-sh" echo "importing ${dump_filename_path} (${PREFIX}-db/tmp/dump.sql) into ${DB_NAME}" docker exec "${PREFIX}-db" /bin/sh -c "mysql -uroot -p${DB_ROOT_PASSWORD} ${DB_NAME} < /tmp/dump.sql"