class Event < ActiveRecord::Base
  has_one :proposition, as: :proposable
end

class Proposition < ActiveRecord::Base
  belongs_to :proposable, polymorphic: true
  belongs_to :proposition_accepting, polymorphic: true
end

class Track < ActiveRecord::Base
end

class AddConferenceIdToEvents < ActiveRecord::Migration
  def up
    add_reference :events, :conference, index: true, foreign_key: true

    Event.all.includes(:proposition).each do |event|
      event.update!(conference_id: event.proposition.proposition_accepting.conference_id)
    end
  end

  def down
    remove_reference :events, :conference, index: true, foreign_key: true
  end
end