This commit is contained in:
+28
-3
@@ -575,6 +575,30 @@ application_state() {
|
||||
fi
|
||||
}
|
||||
|
||||
mysqldump_bin() {
|
||||
if [ -n "${KAIDI_MYSQLDUMP_BIN:-}" ]; then
|
||||
case "$KAIDI_MYSQLDUMP_BIN" in
|
||||
*/*) [ -x "$KAIDI_MYSQLDUMP_BIN" ] && printf '%s\n' "$KAIDI_MYSQLDUMP_BIN" && return 0 ;;
|
||||
*) candidate=$(command -v "$KAIDI_MYSQLDUMP_BIN" 2>/dev/null || true); [ -n "$candidate" ] && printf '%s\n' "$candidate" && return 0 ;;
|
||||
esac
|
||||
return 1
|
||||
fi
|
||||
candidate=$(command -v mysqldump 2>/dev/null || true)
|
||||
if [ -n "$candidate" ]; then
|
||||
printf '%s\n' "$candidate"
|
||||
return 0
|
||||
fi
|
||||
for candidate in \
|
||||
/www/server/mysql/bin/mysqldump /usr/bin/mysqldump \
|
||||
/usr/local/mysql/bin/mysqldump /opt/mysql/bin/mysqldump; do
|
||||
if [ -x "$candidate" ]; then
|
||||
printf '%s\n' "$candidate"
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
backup_database() {
|
||||
DATABASE_BACKUP=
|
||||
[ "${KAIDI_SKIP_DB_BACKUP:-false}" = "true" ] && return
|
||||
@@ -594,11 +618,12 @@ backup_database() {
|
||||
fail "Database backup failed"
|
||||
fi
|
||||
else
|
||||
command -v mysqldump >/dev/null 2>&1 || {
|
||||
dump_bin=$(mysqldump_bin || true)
|
||||
[ -n "$dump_bin" ] || {
|
||||
rm -f "$dump_file" "$backup_tmp"
|
||||
fail "mysqldump is required before installing an update"
|
||||
fail "mysqldump is required before installing an update; set KAIDI_MYSQLDUMP_BIN or install it in a standard MySQL bin directory"
|
||||
}
|
||||
if ! MYSQL_PWD=${KAIDI_DB_PASSWORD:-} mysqldump --single-transaction --routines --triggers \
|
||||
if ! MYSQL_PWD=${KAIDI_DB_PASSWORD:-} "$dump_bin" --single-transaction --routines --triggers \
|
||||
-h "${KAIDI_DB_HOST:-127.0.0.1}" -P "${KAIDI_DB_PORT:-3306}" \
|
||||
-u "${KAIDI_DB_USERNAME:-kaidi}" "${KAIDI_DB_NAME:-kaidi_finance}" > "$dump_file"; then
|
||||
rm -f "$dump_file" "$backup_tmp"
|
||||
|
||||
Reference in New Issue
Block a user