diff --git a/plugins/localdump/mysql.sh b/plugins/localdump/mysql.sh index 82616a1c30cde85b05aabc18daf5be32fb0fb09d..1e0333c7ef7247e8c49f07e7b9e67491636b568a 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