From b1a64ad62c1d58191cf18f0e81eb83ed88ac07d6 Mon Sep 17 00:00:00 2001 From: Chai Woon Khai Date: Sat, 11 Sep 2021 00:48:46 +0800 Subject: [PATCH 1/4] feat: backup all db --- functions | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/functions b/functions index 609d61c..8ebb52a 100755 --- a/functions +++ b/functions @@ -99,13 +99,13 @@ service_export() { local SERVICE="$1" local SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE" local SERVICE_NAME="$(get_service_name "$SERVICE")" - local DATABASE_NAME="$(get_database_name "$SERVICE")" - local PASSWORD="$(service_password "$SERVICE")" + local ROOTPASSWORD="$(service_root_password "$SERVICE")" [[ -n $SSH_TTY ]] && stty -opost - docker exec "$SERVICE_NAME" bash -c "printf '[client]\npassword=$PASSWORD\n' > /root/credentials.cnf" - docker exec "$SERVICE_NAME" mysqldump --defaults-extra-file=/root/credentials.cnf --user=mysql --single-transaction --quick "$DATABASE_NAME" - docker exec "$SERVICE_NAME" rm /root/credentials.cnf + docker exec "$SERVICE_NAME" bash -c "printf '[client]\npassword=$ROOTPASSWORD\n' > /root/credentials.cnf" + docker exec "$SERVICE_NAME" bash -c "printf 'show databases;' | mysql --defaults-extra-file=/root/credentials.cnf --user=root | grep -wvE 'Database|mysql|sys|information_schema|performance_schema' > databases_to_backup" + docker exec "$SERVICE_NAME" bash -c "cat databases_to_backup | xargs mysqldump --defaults-extra-file=/root/credentials.cnf --user=root --single-transaction --quick --databases" + docker exec "$SERVICE_NAME" rm /root/credentials.cnf databases_to_backup status=$? [[ -n $SSH_TTY ]] && stty opost exit $status From f82421bfad7a6b03252f122750b3d607d43c998d Mon Sep 17 00:00:00 2001 From: Chai Woon Khai Date: Sat, 11 Sep 2021 01:18:45 +0800 Subject: [PATCH 2/4] fix: surpress mysql warning when using password --- functions | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/functions b/functions index 8ebb52a..cb31f98 100755 --- a/functions +++ b/functions @@ -103,8 +103,8 @@ service_export() { [[ -n $SSH_TTY ]] && stty -opost docker exec "$SERVICE_NAME" bash -c "printf '[client]\npassword=$ROOTPASSWORD\n' > /root/credentials.cnf" - docker exec "$SERVICE_NAME" bash -c "printf 'show databases;' | mysql --defaults-extra-file=/root/credentials.cnf --user=root | grep -wvE 'Database|mysql|sys|information_schema|performance_schema' > databases_to_backup" - docker exec "$SERVICE_NAME" bash -c "cat databases_to_backup | xargs mysqldump --defaults-extra-file=/root/credentials.cnf --user=root --single-transaction --quick --databases" + docker exec "$SERVICE_NAME" bash -c "printf 'show databases;' | mysql --user=root --defaults-extra-file=/root/credentials.cnf | grep -wvE 'Database|mysql|sys|information_schema|performance_schema' > databases_to_backup" + docker exec "$SERVICE_NAME" bash -c "cat databases_to_backup | xargs mysqldump --user=root --defaults-extra-file=/root/credentials.cnf --single-transaction --quick --databases" docker exec "$SERVICE_NAME" rm /root/credentials.cnf databases_to_backup status=$? [[ -n $SSH_TTY ]] && stty opost @@ -122,7 +122,13 @@ service_import() { if [[ -t 0 ]]; then dokku_log_fail "No data provided on stdin." fi - docker exec -i "$SERVICE_NAME" mysql --user=root --password="$ROOTPASSWORD" "$DATABASE_NAME" + + [[ -n $SSH_TTY ]] && stty -opost + docker exec "$SERVICE_NAME" bash -c "printf '[client]\npassword=$ROOTPASSWORD\n' > /root/credentials.cnf" + docker exec "$SERVICE_NAME" rm /root/credentials.cnf + [[ -n $SSH_TTY ]] && stty opost + + docker exec -i "$SERVICE_NAME" mysql --user=root --defaults-extra-file=/root/credentials.cnf "$DATABASE_NAME" } service_start() { From e126668804ddffe394c0981f1600acba1dc8f02f Mon Sep 17 00:00:00 2001 From: Chai Woon Khai Date: Sat, 11 Sep 2021 01:28:34 +0800 Subject: [PATCH 3/4] minor fix --- functions | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/functions b/functions index cb31f98..e9a4ad5 100755 --- a/functions +++ b/functions @@ -102,9 +102,9 @@ service_export() { local ROOTPASSWORD="$(service_root_password "$SERVICE")" [[ -n $SSH_TTY ]] && stty -opost - docker exec "$SERVICE_NAME" bash -c "printf '[client]\npassword=$ROOTPASSWORD\n' > /root/credentials.cnf" - docker exec "$SERVICE_NAME" bash -c "printf 'show databases;' | mysql --user=root --defaults-extra-file=/root/credentials.cnf | grep -wvE 'Database|mysql|sys|information_schema|performance_schema' > databases_to_backup" - docker exec "$SERVICE_NAME" bash -c "cat databases_to_backup | xargs mysqldump --user=root --defaults-extra-file=/root/credentials.cnf --single-transaction --quick --databases" + docker exec "$SERVICE_NAME" bash -c "printf '[client]\nuser=root\npassword=$ROOTPASSWORD\n' > /root/credentials.cnf" + docker exec "$SERVICE_NAME" bash -c "printf 'show databases;' | mysql --defaults-extra-file=/root/credentials.cnf | grep -wvE 'Database|mysql|sys|information_schema|performance_schema' > databases_to_backup" + docker exec "$SERVICE_NAME" bash -c "cat databases_to_backup | xargs mysqldump --defaults-extra-file=/root/credentials.cnf --single-transaction --quick --databases" docker exec "$SERVICE_NAME" rm /root/credentials.cnf databases_to_backup status=$? [[ -n $SSH_TTY ]] && stty opost @@ -124,11 +124,10 @@ service_import() { fi [[ -n $SSH_TTY ]] && stty -opost - docker exec "$SERVICE_NAME" bash -c "printf '[client]\npassword=$ROOTPASSWORD\n' > /root/credentials.cnf" + docker exec "$SERVICE_NAME" bash -c "printf '[client]\nuser=root\npassword=$ROOTPASSWORD\n' > /root/credentials.cnf" + docker exec -i "$SERVICE_NAME" mysql --defaults-extra-file=/root/credentials.cnf "$DATABASE_NAME" docker exec "$SERVICE_NAME" rm /root/credentials.cnf [[ -n $SSH_TTY ]] && stty opost - - docker exec -i "$SERVICE_NAME" mysql --user=root --defaults-extra-file=/root/credentials.cnf "$DATABASE_NAME" } service_start() { From b1810448628fa5ac2221c63b4a58ee66e77eae72 Mon Sep 17 00:00:00 2001 From: Chai Woon Khai Date: Sat, 11 Sep 2021 01:29:51 +0800 Subject: [PATCH 4/4] test changes --- functions | 2 -- 1 file changed, 2 deletions(-) diff --git a/functions b/functions index e9a4ad5..d72c0db 100755 --- a/functions +++ b/functions @@ -123,11 +123,9 @@ service_import() { dokku_log_fail "No data provided on stdin." fi - [[ -n $SSH_TTY ]] && stty -opost docker exec "$SERVICE_NAME" bash -c "printf '[client]\nuser=root\npassword=$ROOTPASSWORD\n' > /root/credentials.cnf" docker exec -i "$SERVICE_NAME" mysql --defaults-extra-file=/root/credentials.cnf "$DATABASE_NAME" docker exec "$SERVICE_NAME" rm /root/credentials.cnf - [[ -n $SSH_TTY ]] && stty opost } service_start() {