You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

pull-remote-db.sh 2.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #! /bin/sh
  2. #
  3. 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."
  4. echo "en attendant: faire un dump de la remote db and utiliser replace-db et migrate-db"
  5. exit 0
  6. set -a
  7. . "${PWD}/.env"
  8. . "${PWD}/env_files/migrate-db.env"
  9. . "${PWD}/env_files/remote.env"
  10. set +a
  11. mkdir --parents "${PWD}/tmp"
  12. FILENAME="${REMOTE_WP_URL}".$(date +%Y-%m-%d-%H-%M-%S).sql
  13. echo "wp \
  14. migratedb \
  15. export "/tmp/${FILENAME}.gz" \
  16. --find="//${REMOTE_WP_URL},${REMOTE_WP_PATH}" \
  17. --gzip-file \
  18. --path="${REMOTE_WP_PATH}" \
  19. --replace="//${APP_URL},/var/www/html" \
  20. --skip-replace-guids \
  21. --ssh="${REMOTE_SSH_STRING}""
  22. wp \
  23. migratedb \
  24. export "/tmp/${FILENAME}.gz" \
  25. --find="//${REMOTE_WP_URL},${REMOTE_WP_PATH}" \
  26. --gzip-file \
  27. --path="${REMOTE_WP_PATH}" \
  28. --replace="//${APP_URL},/var/www/html" \
  29. --skip-replace-guids \
  30. --ssh="${REMOTE_SSH_STRING}"
  31. exit 0
  32. if ! scp "${REMOTE_SSH_STRING}:/tmp/${FILENAME}_.gz" "${PWD}/tmp"; then
  33. echo "couldn't get remote db"
  34. exit 1
  35. fi
  36. gunzip "${PWD}/tmp/${FILENAME}_.gz"
  37. exit 0
  38. docker compose up db -d
  39. while ! docker ps -q -f name="${PREFIX}-db"; do
  40. echo "Waiting for the db container to be up and running..."
  41. sleep 1
  42. done
  43. 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
  44. echo "Waiting for the mysql server in ${PREFIX}-db to be up and running..."
  45. sleep 1
  46. done
  47. docker cp "${PWD}/tmp/${FILENAME}" "${PREFIX}"-db:/tmp
  48. echo "dropping ${DB_NAME}"
  49. docker exec "${PREFIX}-db" /bin/sh -c "mysqladmin --force -uroot -p${DB_ROOT_PASSWORD} drop ${DB_NAME}"
  50. echo "creating ${DB_NAME}"
  51. docker exec "${PREFIX}-db" /bin/sh -c "mysqladmin -uroot -p${DB_ROOT_PASSWORD} create ${DB_NAME}"
  52. echo "importing ${PWD}/tmp/${FILENAME} (/tmp/${FILENAME}) into ${DB_NAME}"
  53. docker exec "${PREFIX}-db" /bin/sh -c "mysql -uroot -p${DB_ROOT_PASSWORD} ${DB_NAME} < /tmp/${FILENAME}"