diff --git a/app/jobs/regular/create_backup.rb b/app/jobs/regular/create_backup.rb index d455e6ab8c..5f1cf57602 100644 --- a/app/jobs/regular/create_backup.rb +++ b/app/jobs/regular/create_backup.rb @@ -5,7 +5,6 @@ module Jobs sidekiq_options retry: false def execute(args) - return unless SiteSetting.backups_enabled? BackupRestore.backup!(Discourse.system_user.id, publish_to_message_bus: false) end end diff --git a/app/jobs/scheduled/schedule_backup.rb b/app/jobs/scheduled/schedule_backup.rb index fa1584b6a0..e3e7455584 100644 --- a/app/jobs/scheduled/schedule_backup.rb +++ b/app/jobs/scheduled/schedule_backup.rb @@ -5,11 +5,11 @@ module Jobs sidekiq_options retry: false def execute(args) - return unless SiteSetting.backups_enabled? + return unless SiteSetting.automatic_backups_enabled? if latest_backup = Backup.all[0] - date = Date.parse(latest_backup.filename[/\d{4}-\d{2}-\d{2}/]) - return if date + SiteSetting.backup_frequency.days > Time.now + date = File.ctime(latest_backup.path).to_date + return if (date + SiteSetting.backup_frequency.days) > Time.now.to_date end Jobs.enqueue_in(rand(10.minutes), :create_backup) diff --git a/app/models/site_setting.rb b/app/models/site_setting.rb index 67c2aa7a63..4c46e52d12 100644 --- a/app/models/site_setting.rb +++ b/app/models/site_setting.rb @@ -113,10 +113,6 @@ class SiteSetting < ActiveRecord::Base false end - def self.backups_enabled? - SiteSetting.backup_frequency > 0 - end - end # == Schema Information diff --git a/config/locales/server.en.yml b/config/locales/server.en.yml index b919935436..7d525bc314 100644 --- a/config/locales/server.en.yml +++ b/config/locales/server.en.yml @@ -938,6 +938,7 @@ en: allow_restore: "Allow restore, which can replace ALL site data! Leave false unless you plan to restore a backup" maximum_backups: "The maximum amount of backups to keep on disk. Older backups are automatically deleted" + automatic_backups_enabled: "Run automatic backups as defined in backup frequency" backup_frequency: "How frequently we create a site backup, in days." enable_s3_backups: "Upload backups to S3 when complete. IMPORTANT: requires valid S3 credentials entered in Files settings." s3_backup_bucket: "The remote bucket to hold backups. WARNING: Make sure it is a private bucket." diff --git a/config/site_settings.yml b/config/site_settings.yml index b45b5f7a9b..e1ff85b944 100644 --- a/config/site_settings.yml +++ b/config/site_settings.yml @@ -791,15 +791,22 @@ backups: maximum_backups: client: true default: 7 + shadowed_by_global: true + automatic_backups_enabled: + default: true + shadowed_by_global: true backup_frequency: - min: 0 + min: 1 max: 30 default: 7 + shadowed_by_global: true enable_s3_backups: default: false + shadowed_by_global: true s3_backup_bucket: default: '' regex: "^[^A-Z_.]+$" # can't use '.' when using HTTPS + shadowed_by_global: true uncategorized: version_checks: