Fix dump with geospatial fields

This commit is contained in:
mirocow 2016-10-17 17:30:58 +04:00 committed by GitHub
parent 7ea3f69bfc
commit ced1fbb02f
1 changed files with 9 additions and 2 deletions

View File

@ -126,9 +126,16 @@ backup()
if [ $(echo $data_tables_exclude_expression| grep $TABLE) ]; then
f_log "Exclude data from table $TABLE"
mysqldump --defaults-file=$CONFIG_FILE --no-data --add-drop-table --tab=$DST/$DATABASE/ $DATABASE $TABLE 2>> $DST/$DATABASE/error.log
mysqldump --defaults-file=$CONFIG_FILE --no-data --add-drop-table --tab=$DST/$DATABASE/ $DATABASE $TABLE 2>> $DST/$DATABASE/error.log
else
mysqldump --defaults-file=$CONFIG_FILE --default-character-set=utf8 --add-drop-table --quick --tab=$DST/$DATABASE/ $DATABASE $TABLE 2>> $DST/$DATABASE/error.log
# 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/$DATABASE/$TABLE.sql $DATABASE $TABLE 2>> $DST/$DATABASE/error.log
else
mysqldump --defaults-file=$CONFIG_FILE --flush-logs --default-character-set=utf8 --add-drop-table --quick --tab=$DST/$DATABASE/ $DATABASE $TABLE 2>> $DST/$DATABASE/error.log
fi
fi
if [ -f "$DST/$DATABASE/$TABLE.sql" ]; then