osem-fcy/db/migrate/20171130172334_rebuild_conference_pictures.rb
Andrew Kvalheim 63aa240e65 Fix migration that fails on conferences without pictures
CarrierWave documentation:

> Note: `recreate_versions!` will throw an exception on records without
> an image. To avoid this, scope the records to those with images or
> check if an image exists within the block.

Resolves #1976:

    NoMethodError: undefined method `read' for nil:NilClass
    …/carrierwave-1.3.1/lib/carrierwave/uploader/cache.rb:81:in `sanitized_file'
    …/carrierwave-1.3.1/lib/carrierwave/uploader/cache.rb:118:in `cache!'
    …/carrierwave-1.3.1/lib/carrierwave/uploader/versions.rb:234:in `recreate_versions!'
    db/migrate/20171130172334_rebuild_conference_pictures.rb:4:in `block in up'
2020-05-12 07:43:58 -07:00

11 lines
237 B
Ruby

# frozen_string_literal: true
class RebuildConferencePictures < ActiveRecord::Migration
def up
Conference.where.not(picture: nil).each do |conference|
conference.picture.recreate_versions!
end
end
def down; end
end