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
58 lines
2.5 KiB
#!/bin/bash
|
|
|
|
### DO NOT EDIT THIS FILE
|
|
|
|
source "$(dirname "${BASH_SOURCE[0]}")/../../includes/includes.sh"
|
|
app_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")/../../.." &> /dev/null && pwd)
|
|
source "$app_dir/etc/config.sh"
|
|
|
|
usage="Usage: import_db.sh [live|stage] (1,0:withGdprData)"
|
|
env="$(getArgument "$1" "$usage" "live stage")"
|
|
with_gdpr="$(getArgument "$2" "$usage" "1 0")"
|
|
|
|
echoMainTitle "Importing $env database to local installation"
|
|
|
|
structure_file="$app_dir/var/latest/${env}_structure.sql.gz"
|
|
data_file="$app_dir/var/latest/${env}_data.sql.gz"
|
|
gdpr_file="$app_dir/var/latest/${env}_gdpr_data.sql.gz"
|
|
|
|
database_name=$(getConfig "local_$env" "database_name")
|
|
|
|
if [ ! -f "$structure_file" ]; then echoError "Missing structure file - aborting"; fi
|
|
if [ ! -f "$data_file" ]; then echoError "Missing data file - aborting"; fi
|
|
if [ ! -f "$gdpr_file" ] && [ "$with_gdpr" == "1" ]; then echoError "Missing GDPR file - aborting"; fi
|
|
|
|
if [ -f "$structure_file" ] && [ -f "$data_file" ] && ([ "$with_gdpr" == "1" ] && [ -f "$gdpr_file" ] || [ "$with_gdpr" == "0" ])
|
|
then
|
|
|
|
echo "Uncompress Database ..."
|
|
|
|
gzip -fdc "$app_dir/var/latest/${env}_structure.sql.gz" > "$app_dir/var/tmp/${env}_structure.sql"
|
|
gzip -dfc "$app_dir/var/latest/${env}_data.sql.gz" > "$app_dir/var/tmp/${env}_data.sql"
|
|
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
|
|
|
|
echo "Drop local tables ..."
|
|
|
|
mysqldump --defaults-extra-file="$app_dir/etc/local.my.cnf" --add-drop-table --add-drop-trigger --no-data "$database_name" | \
|
|
grep -e '[DROP TABLE|DROP TRIGGER]' >> "$app_dir/var/tmp/${env}_drop_local.sql"
|
|
echo "SET FOREIGN_KEY_CHECKS = 1;" >> "$app_dir/var/tmp/${env}_drop_local.sql"
|
|
mysql --defaults-extra-file="$app_dir/etc/local.my.cnf" -D "$database_name" < "$app_dir/var/tmp/${env}_drop_local.sql"
|
|
rm "$app_dir/var/tmp/${env}_drop_local.sql"
|
|
|
|
echo "Import structure ..."
|
|
mysql --defaults-extra-file="$app_dir/etc/local.my.cnf" -D "$database_name" < "$app_dir/var/tmp/${env}_structure.sql"
|
|
|
|
echo "Import data ..."
|
|
mysql --defaults-extra-file="$app_dir/etc/local.my.cnf" -D "$database_name" < "$app_dir/var/tmp/${env}_data.sql"
|
|
|
|
if [ "$with_gdpr" == "1" ]
|
|
then
|
|
echo "Import GDPR ..."
|
|
mysql --defaults-extra-file="$app_dir/etc/local.my.cnf" -D "$database_name" < "$app_dir/var/tmp/${env}_gdpr_data.sql"
|
|
fi
|
|
|
|
echo "Cleanup ..."
|
|
rm "$structure_file"
|
|
rm "$data_file"
|
|
rm "$gdpr_file"
|
|
fi
|