From aac557bed50e663964029bd624daeea7b46c6d21 Mon Sep 17 00:00:00 2001 From: "Hahn Axel (hahn)" <axel.hahn@iml.unibe.ch> Date: Thu, 24 Mar 2022 11:35:32 +0100 Subject: [PATCH] On empty dumps: detect if source db is empty too --- plugins/localdump/mysql.sh | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/plugins/localdump/mysql.sh b/plugins/localdump/mysql.sh index 82616a1..1e0333c 100755 --- a/plugins/localdump/mysql.sh +++ b/plugins/localdump/mysql.sh @@ -13,7 +13,8 @@ # 2022-02-14 ah v2.0 rewrite with class like functions # 2022-02-18 ah v2.1 WIP: added counters # 2022-03-17 v2.2 WIP: add lines with prefix __DB__ -# 2022-03-21 v2.3 Check if the created dump contains "insert" +# 2022-03-21 v2.3 Check if the created dump contains "insert" +# 2022-03-24 v2.4 On empty dumps: detect if source db is empty too # ================================================================================ if [ -z "$LOCALDUMP_LOADED" ]; then @@ -94,9 +95,19 @@ function mysql.db.dump(){ fetchrc >/dev/null if [ $myrc -eq 0 ]; then - zgrep -iE "(CREATE|INSERT)" "$_dumpfile" >/dev/null - fetchrc >/dev/null - test $myrc -ne 0 && echo "ERROR: no data - the dump doesn't contain any CREATE or INSERT statement." + if ! zgrep -iE "(CREATE|INSERT)" "$_dumpfile" >/dev/null + then + typeset -i local _iTables + _iTables=$( mysql --skip-column-names --batch -e "use $_dbname; show tables ;" | wc -l ) + if [ $_iTables -eq 0 ]; + then + echo -n "NO DATA in database" + else + echo "ERROR: no data - the dump doesn't contain any CREATE or INSERT statement." + # force an error + false; fetchrc >/dev/null + fi + fi fi test $myrc -eq 0 && mysql_COUNT_DUMPS+=1 -- GitLab