fix: корректное формирование бэкапов
This commit is contained in:
14
modules/db.R
14
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}'")
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user