Sha256: 84f1fd68b3168dcca7e110b72b6e9422761a8bbd71c9c0adcda7909286cc7f6c

Contents?: true

Size: 730 Bytes

Versions: 15

Compression:

Stored size: 730 Bytes

Contents

class TrashArchivedBooleans < ActiveRecord::Migration[4.2]
  def self.up
    Rails.application.eager_load!
    klasses = ActiveRecord::Base.descendants
      .reject { |klass| klass.abstract_class? }
      .select { |klass| (klass.new.respond_to?(:archived?) rescue false) }

    klasses.each do |klass|
      puts "Trashing #{klass.table_name}"

      ids = [] # to delete

      klass.unscoped.where(archived: true).find_each do |resource|
        print '.'
        EffectiveTrash.trash!(resource)
        ids << resource.id
      end

      klass.where(id: ids).delete_all
    end

    klasses.each { |klass| remove_column(klass.table_name, :archived) }
  end

  def self.down
    raise 'TODO: this could be written'
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
effective_trash-0.4.5 db/trash/trash_archived_booleans.rb
effective_trash-0.4.4 db/trash/trash_archived_booleans.rb
effective_trash-0.4.3 db/trash/trash_archived_booleans.rb
effective_trash-0.4.2 db/trash/trash_archived_booleans.rb
effective_trash-0.4.1 db/trash/trash_archived_booleans.rb
effective_trash-0.4.0 db/trash/trash_archived_booleans.rb
effective_trash-0.3.3 db/trash/trash_archived_booleans.rb
effective_trash-0.3.2 db/trash/trash_archived_booleans.rb
effective_trash-0.3.1 db/trash/trash_archived_booleans.rb
effective_trash-0.3.0 db/trash/trash_archived_booleans.rb
effective_trash-0.2.6 db/trash/trash_archived_booleans.rb
effective_trash-0.2.5 db/trash/trash_archived_booleans.rb
effective_trash-0.2.4 db/trash/trash_archived_booleans.rb
effective_trash-0.2.3 db/trash/trash_archived_booleans.rb
effective_trash-0.2.2 db/trash/trash_archived_booleans.rb