20110422152027_move_notices_to_separate_collection.rb 884 Bytes
class MoveNoticesToSeparateCollection < Mongoid::Migration
  def self.up
    # copy embedded Notices into a separate collection
    mongo_db = Err.db
    errs = mongo_db.collection("errs").find({ }, :fields => ["notices"])
    errs.each do |err|
      next unless err['notices']
      e = Err.find(err['_id'])
      # disable email notifications
      old_notify = e.app.notify_on_errs?
      e.app.update_attribute(:notify_on_errs, false)
      puts "Copying notices for Err #{err['_id']}"
      err['notices'].each do |notice|
        e.notices.create!(notice)
      end
      e.app.update_attribute(:notify_on_errs, old_notify)
      mongo_db.collection("errs").update({ "_id" => err['_id']}, { "$unset" => { "notices" => 1}})
    end
    Rake::Task["errbit:db:update_notices_count"].invoke
    Rake::Task["errbit:db:update_problem_attrs"].invoke
  end

  def self.down
  end
end