Fix MySQL dump remote path to use _mysql/ instead of full temp path
Add optional dest_name parameter to transfer_folder to override the remote subpath. MySQL dumps now land in _mysql/ inside the snapshot instead of tmp/gniza-mysql-xxx/_mysql/. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -128,7 +128,7 @@ _backup_target_impl() {
|
||||
# 9.5. Transfer MySQL dumps
|
||||
if [[ -n "$mysql_dump_dir" && -d "$mysql_dump_dir/_mysql" ]]; then
|
||||
log_info "Transferring MySQL dumps for $target_name..."
|
||||
if ! transfer_folder "$target_name" "$mysql_dump_dir/_mysql" "$ts" "$prev"; then
|
||||
if ! transfer_folder "$target_name" "$mysql_dump_dir/_mysql" "$ts" "$prev" "_mysql"; then
|
||||
log_error "Transfer failed for MySQL dumps"
|
||||
transfer_failed=true
|
||||
fi
|
||||
|
||||
@@ -114,12 +114,14 @@ rsync_local() {
|
||||
}
|
||||
|
||||
# Transfer a single folder to a remote snapshot.
|
||||
# Usage: transfer_folder <target_name> <folder_path> <timestamp> [prev_snapshot]
|
||||
# Usage: transfer_folder <target_name> <folder_path> <timestamp> [prev_snapshot] [dest_name]
|
||||
# If dest_name is given, use it as the remote subpath instead of deriving from folder_path.
|
||||
transfer_folder() {
|
||||
local target_name="$1"
|
||||
local folder_path="$2"
|
||||
local timestamp="$3"
|
||||
local prev_snapshot="${4:-}"
|
||||
local dest_name="${5:-}"
|
||||
|
||||
if [[ ! -d "$folder_path" ]]; then
|
||||
log_warn "Folder not found, skipping: $folder_path"
|
||||
@@ -127,7 +129,7 @@ transfer_folder() {
|
||||
fi
|
||||
|
||||
# Strip leading / to create relative subpath in snapshot
|
||||
local rel_path="${folder_path#/}"
|
||||
local rel_path="${dest_name:-${folder_path#/}}"
|
||||
|
||||
if _is_rclone_mode; then
|
||||
local snap_subpath="targets/${target_name}/snapshots/${timestamp}/${rel_path}"
|
||||
|
||||
Reference in New Issue
Block a user