Add `created_before` and `updated_before` scopes to `MediaAttachment` (#28869)
parent
a11a2fb052
commit
7a1f087659
|
@ -27,11 +27,17 @@ class Vacuum::MediaAttachmentsVacuum
|
|||
end
|
||||
|
||||
def media_attachments_past_retention_period
|
||||
MediaAttachment.remote.cached.where(MediaAttachment.arel_table[:created_at].lt(@retention_period.ago)).where(MediaAttachment.arel_table[:updated_at].lt(@retention_period.ago))
|
||||
MediaAttachment
|
||||
.remote
|
||||
.cached
|
||||
.created_before(@retention_period.ago)
|
||||
.updated_before(@retention_period.ago)
|
||||
end
|
||||
|
||||
def orphaned_media_attachments
|
||||
MediaAttachment.unattached.where(MediaAttachment.arel_table[:created_at].lt(TTL.ago))
|
||||
MediaAttachment
|
||||
.unattached
|
||||
.created_before(TTL.ago)
|
||||
end
|
||||
|
||||
def retention_period?
|
||||
|
|
|
@ -204,12 +204,14 @@ class MediaAttachment < ApplicationRecord
|
|||
validates :file, presence: true, if: :local?
|
||||
validates :thumbnail, absence: true, if: -> { local? && !audio_or_video? }
|
||||
|
||||
scope :attached, -> { where.not(status_id: nil).or(where.not(scheduled_status_id: nil)) }
|
||||
scope :cached, -> { remote.where.not(file_file_name: nil) }
|
||||
scope :local, -> { where(remote_url: '') }
|
||||
scope :ordered, -> { order(id: :asc) }
|
||||
scope :remote, -> { where.not(remote_url: '') }
|
||||
scope :attached, -> { where.not(status_id: nil).or(where.not(scheduled_status_id: nil)) }
|
||||
scope :cached, -> { remote.where.not(file_file_name: nil) }
|
||||
scope :created_before, ->(value) { where(arel_table[:created_at].lt(value)) }
|
||||
scope :local, -> { where(remote_url: '') }
|
||||
scope :ordered, -> { order(id: :asc) }
|
||||
scope :remote, -> { where.not(remote_url: '') }
|
||||
scope :unattached, -> { where(status_id: nil, scheduled_status_id: nil) }
|
||||
scope :updated_before, ->(value) { where(arel_table[:updated_at].lt(value)) }
|
||||
|
||||
attr_accessor :skip_download
|
||||
|
||||
|
|
|
@ -120,7 +120,7 @@ module Mastodon::CLI
|
|||
|
||||
say('Beginning removal of now-orphaned media attachments to free up disk space...')
|
||||
|
||||
scope = MediaAttachment.unattached.where('created_at < ?', options[:days].pred.days.ago)
|
||||
scope = MediaAttachment.unattached.created_before(options[:days].pred.days.ago)
|
||||
processed = 0
|
||||
removed = 0
|
||||
progress = create_progress_bar(scope.count)
|
||||
|
|
Loading…
Reference in New Issue