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 <- 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}'")
|
||||||
}
|
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user