Ein für Shopware 6 vorbereitet Systemmanagment.
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.

58 lines
2.5 KiB

  1. #!/bin/bash
  2. ### DO NOT EDIT THIS FILE
  3. source "$(dirname "${BASH_SOURCE[0]}")/../../includes/includes.sh"
  4. app_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")/../../.." &> /dev/null && pwd)
  5. source "$app_dir/etc/config.sh"
  6. usage="Usage: import_db.sh [live|stage] (1,0:withGdprData)"
  7. env="$(getArgument "$1" "$usage" "live stage")"
  8. with_gdpr="$(getArgument "$2" "$usage" "1 0")"
  9. echoMainTitle "Importing $env database to local installation"
  10. structure_file="$app_dir/var/latest/${env}_structure.sql.gz"
  11. data_file="$app_dir/var/latest/${env}_data.sql.gz"
  12. gdpr_file="$app_dir/var/latest/${env}_gdpr_data.sql.gz"
  13. database_name=$(getConfig "local_$env" "database_name")
  14. if [ ! -f "$structure_file" ]; then echoError "Missing structure file - aborting"; fi
  15. if [ ! -f "$data_file" ]; then echoError "Missing data file - aborting"; fi
  16. if [ ! -f "$gdpr_file" ] && [ "$with_gdpr" == "1" ]; then echoError "Missing GDPR file - aborting"; fi
  17. if [ -f "$structure_file" ] && [ -f "$data_file" ] && ([ "$with_gdpr" == "1" ] && [ -f "$gdpr_file" ] || [ "$with_gdpr" == "0" ])
  18. then
  19. echo "Uncompress Database ..."
  20. gzip -fdc "$app_dir/var/latest/${env}_structure.sql.gz" > "$app_dir/var/tmp/${env}_structure.sql"
  21. gzip -dfc "$app_dir/var/latest/${env}_data.sql.gz" > "$app_dir/var/tmp/${env}_data.sql"
  22. if [ "$with_gdpr" == "1" ]; then gzip -dfc "$app_dir/var/latest/${env}_gdpr_data.sql.gz" > "$app_dir/var/tmp/${env}_gdpr_data.sql"; fi
  23. echo "Drop local tables ..."
  24. mysqldump --defaults-extra-file="$app_dir/etc/local.my.cnf" --add-drop-table --add-drop-trigger --no-data "$database_name" | \
  25. grep -e '[DROP TABLE|DROP TRIGGER]' >> "$app_dir/var/tmp/${env}_drop_local.sql"
  26. echo "SET FOREIGN_KEY_CHECKS = 1;" >> "$app_dir/var/tmp/${env}_drop_local.sql"
  27. mysql --defaults-extra-file="$app_dir/etc/local.my.cnf" -D "$database_name" < "$app_dir/var/tmp/${env}_drop_local.sql"
  28. rm "$app_dir/var/tmp/${env}_drop_local.sql"
  29. echo "Import structure ..."
  30. mysql --defaults-extra-file="$app_dir/etc/local.my.cnf" -D "$database_name" < "$app_dir/var/tmp/${env}_structure.sql"
  31. echo "Import data ..."
  32. mysql --defaults-extra-file="$app_dir/etc/local.my.cnf" -D "$database_name" < "$app_dir/var/tmp/${env}_data.sql"
  33. if [ "$with_gdpr" == "1" ]
  34. then
  35. echo "Import GDPR ..."
  36. mysql --defaults-extra-file="$app_dir/etc/local.my.cnf" -D "$database_name" < "$app_dir/var/tmp/${env}_gdpr_data.sql"
  37. fi
  38. echo "Cleanup ..."
  39. rm "$structure_file"
  40. rm "$data_file"
  41. rm "$gdpr_file"
  42. fi