From e06706685af7c7c95c8cf184556d8105fc36fc84 Mon Sep 17 00:00:00 2001 From: mirocow Date: Mon, 17 Oct 2016 17:44:39 +0400 Subject: [PATCH] Fix dump with geospatial fields --- backup.sh | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/backup.sh b/backup.sh index b8e3ac0..f51922f 100755 --- a/backup.sh +++ b/backup.sh @@ -111,8 +111,15 @@ backup() f_log "Exclude data from table $TABLE" mysqldump --defaults-file=$CONFIG_FILE --no-data --add-drop-table --tab=$DST/$BDD/ $BDD $TABLE 2>> $DST/$BDD/error.log else - mysqldump --defaults-file=$CONFIG_FILE --default-character-set=utf8 --add-drop-table --quick --tab=$DST/$BDD/ $BDD $TABLE 2>> $DST/$BDD/error.log - fi + # If fields has geospatial types + checkGeo="mysql --defaults-extra-file=$CONFIG_FILE -B $DATABASE -e \"SHOW COLUMNS FROM $TABLE WHERE Type IN ('point', 'polygon', 'geometry', 'linestring')\"" + hasGeo=$(eval $checkGeo) + if [ ! -z "$hasGeo" ]; then + mysqldump --defaults-file=$CONFIG_FILE --flush-logs --default-character-set=utf8 --add-drop-table --quick --result-file=$DST/$BDD/$TABLE.sql $BDD $TABLE 2>> $DST/$BDD/error.log + else + mysqldump --defaults-file=$CONFIG_FILE --flush-logs --default-character-set=utf8 --add-drop-table --quick --tab=$DST/$BDD/ $BDD $TABLE 2>> $DST/$BDD/error.log + fi + fi if [ -f "$DST/$BDD/$TABLE.sql" ]; then chmod $FILEATTRIBUTES $DST/$BDD/$TABLE.sql