fix: корректное формирование бэкапов

This commit is contained in:
2026-04-22 12:15:07 +03:00
parent 43af8c20c4
commit bb6f94126c

View File

@@ -381,21 +381,25 @@ local_db_backup <- function(
dates <- stringr::str_extract(existed_files, "((?:19|20)\\d\\d)(0?[1-9]|1[012])([12][0-9]|3[01]|0?[1-9])") dates <- stringr::str_extract(existed_files, "((?:19|20)\\d\\d)(0?[1-9]|1[012])([12][0-9]|3[01]|0?[1-9])")
dates <- as.Date(dates, "%Y%m%d") dates <- as.Date(dates, "%Y%m%d")
# если количество существующих бэкапов значимо превышает установленный лимит, удаляем лишнее if (length(existed_files) == 0) {
if (length(existed_files) > backups_limit) { file.copy(db_full_path, todays_backup)
cli::cli_alert_success("создан {schedule_name}-бэкап для '{db_name}'")
return()
}
# если количество существующих бэкапов превышает установленный лимит, удаляем лишнее
if (length(existed_files) >= backups_limit) {
file.remove(utils::tail(existed_files, length(existed_files) - backups_limit)) file.remove(utils::tail(existed_files, length(existed_files) - backups_limit))
} }
# если количество существующих бэкапов равно имеющемуся и пора делать бэкап - делаем бэкап, удаляем послендий файл # если количество существующих бэкапов равно имеющемуся и пора делать бэкап - делаем бэкап, удаляем послендий файл
if (dates[1] + schedule_days == Sys.Date()) { if (dates[1] + schedule_days == Sys.Date()) {
if (length(existed_files) >= backups_limit) file.remove(utils::tail(existed_files, 1))
file.copy(db_full_path, todays_backup) file.copy(db_full_path, todays_backup)
cli::cli_alert_success("создан {schedule_name}-бэкап для '{db_name}'") cli::cli_alert_success("создан {schedule_name}-бэкап для '{db_name}'")
}
}
} }
) )
} }