diff --git a/modules/db.R b/modules/db.R index 624be7f..ffd4db3 100644 --- a/modules/db.R +++ b/modules/db.R @@ -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 <- as.Date(dates, "%Y%m%d") - # если количество существующих бэкапов значимо превышает установленный лимит, удаляем лишнее - if (length(existed_files) > backups_limit) { + if (length(existed_files) == 0) { + 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)) } # если количество существующих бэкапов равно имеющемуся и пора делать бэкап - делаем бэкап, удаляем послендий файл 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) cli::cli_alert_success("создан {schedule_name}-бэкап для '{db_name}'") + } - } ) - }