您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

replace-db.sh 1.2KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #! /bin/sh
  2. #
  3. if [ "$#" -ne 1 ]; then
  4. echo "Usage: $0 <sql dump file>" >&2
  5. exit 1
  6. fi
  7. if ! [ -e "${1}" ]; then
  8. echo "$1 not found" >&2
  9. exit 1
  10. fi
  11. set -a
  12. . "${PWD}/.env"
  13. set +a
  14. mkdir --parents "${PWD}/tmp"
  15. dump_filename_path="${1}"
  16. docker compose up db -d
  17. while ! docker ps -q -f name="${PREFIX}-db"; do
  18. echo "Waiting for the db container to be up and running..."
  19. sleep 1
  20. done
  21. 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
  22. echo "Waiting for the mysql server in ${PREFIX}-db to be up and running..."
  23. sleep 1
  24. done
  25. echo "copying mysql dump to db container"
  26. docker cp "${dump_filename_path}" "${PREFIX}"-db:/tmp/dump.sql
  27. echo "dropping ${DB_NAME}"
  28. docker exec "${PREFIX}-db" /bin/sh -c "mysqladmin --force -uroot -p${DB_ROOT_PASSWORD} drop ${DB_NAME}"
  29. echo "creating ${DB_NAME}"
  30. docker exec "${PREFIX}-db" /bin/sh -c "mysqladmin -uroot -p${DB_ROOT_PASSWORD} create ${DB_NAME}"
  31. echo "importing ${dump_filename_path} ({PREFIX}-db/tmp/dump.sql) into ${DB_NAME}"
  32. docker exec "${PREFIX}-db" /bin/sh -c "mysql -uroot -p${DB_ROOT_PASSWORD} ${DB_NAME} < /tmp/dump.sql"