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.
69 lines
1.0 KiB
69 lines
1.0 KiB
4 years ago
|
#!/bin/sh
|
||
|
set -Eeo pipefail
|
||
|
|
||
|
# This script asumes postgres container_name is "mysql", and the user and db are "directus"
|
||
|
|
||
|
# get $MYSQL_PASSWORD from .env
|
||
|
source ./.env
|
||
|
|
||
|
backup() {
|
||
|
if [ -z "$FILENAME" ]; then
|
||
|
FILENAME="dump_`date +%d-%m-%Y"_"%H_%M_%S`.sql"
|
||
|
fi
|
||
|
|
||
|
sudo docker-compose exec -T mysql /usr/bin/mysqldump -udirectus -p$MYSQL_PASSWORD directus > $FILENAME
|
||
|
echo "$FILENAME written"
|
||
|
exit 0
|
||
|
}
|
||
|
|
||
|
restore() {
|
||
|
if [ -z "$FILENAME" ]; then
|
||
|
help
|
||
|
exit 1
|
||
|
elif [ -f "$FILENAME" ]; then
|
||
|
cat "$FILENAME" | sudo docker-compose exec -T /bin/bash -c 'mysql -uroot -proot'
|
||
|
echo "backup $FILENAME restored"
|
||
|
exit 0
|
||
|
else
|
||
|
echo "Error while opening $FILENAME"
|
||
|
exit 1
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
help() {
|
||
|
cat <<EOF
|
||
|
|
||
|
Usage: $(basename $0) command
|
||
|
|
||
|
Commands:
|
||
|
backup [filename]
|
||
|
restore filename
|
||
|
|
||
|
EOF
|
||
|
}
|
||
|
|
||
|
main() {
|
||
|
if [ -z "$COMMAND" ]; then
|
||
|
help
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
case "$COMMAND" in
|
||
|
"backup")
|
||
|
backup
|
||
|
;;
|
||
|
"restore")
|
||
|
restore
|
||
|
;;
|
||
|
*)
|
||
|
help
|
||
|
exit 1
|
||
|
;;
|
||
|
esac
|
||
|
}
|
||
|
|
||
|
COMMAND=$1
|
||
|
FILENAME=$2
|
||
|
|
||
|
main
|