#! /bin/sh # echo "ne fonctionne pas encore comme je veux, à ré-écrire pour docker, ne fonctionne que si accès ssh à un machine (ne marche pas avec un conteneur), ne fonctionnera pas à partir d'un conteneur sans clé SSH, doit avoir wp installé localement, etc." echo "en attendant: faire un dump de la remote db and utiliser replace-db et migrate-db" exit 0 set -a . "${PWD}/.env" . "${PWD}/env_files/migrate-db.env" . "${PWD}/env_files/remote.env" set +a mkdir --parents "${PWD}/tmp" FILENAME="${REMOTE_WP_URL}".$(date +%Y-%m-%d-%H-%M-%S).sql echo "wp \ migratedb \ export "/tmp/${FILENAME}.gz" \ --find="//${REMOTE_WP_URL},${REMOTE_WP_PATH}" \ --gzip-file \ --path="${REMOTE_WP_PATH}" \ --replace="//${APP_URL},/var/www/html" \ --skip-replace-guids \ --ssh="${REMOTE_SSH_STRING}"" wp \ migratedb \ export "/tmp/${FILENAME}.gz" \ --find="//${REMOTE_WP_URL},${REMOTE_WP_PATH}" \ --gzip-file \ --path="${REMOTE_WP_PATH}" \ --replace="//${APP_URL},/var/www/html" \ --skip-replace-guids \ --ssh="${REMOTE_SSH_STRING}" exit 0 if ! scp "${REMOTE_SSH_STRING}:/tmp/${FILENAME}_.gz" "${PWD}/tmp"; then echo "couldn't get remote db" exit 1 fi gunzip "${PWD}/tmp/${FILENAME}_.gz" exit 0 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 docker cp "${PWD}/tmp/${FILENAME}" "${PREFIX}"-db:/tmp 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 "importing ${PWD}/tmp/${FILENAME} (/tmp/${FILENAME}) into ${DB_NAME}" docker exec "${PREFIX}-db" /bin/sh -c "mysql -uroot -p${DB_ROOT_PASSWORD} ${DB_NAME} < /tmp/${FILENAME}"