class AddEventIdAtCreationToLinks < ActiveRecord::Migration class Link < ActiveRecord::Base; end class Event < ActiveRecord::Base; end def up add_column :links, :event_id_at_creation, :integer, :null => false, :default => 0 Link.all.find_each do |link| last_event_id = execute( <<-SQL SELECT #{ActiveRecord::Base.connection.quote_column_name('id')} FROM #{ActiveRecord::Base.connection.quote_table_name('events')} WHERE events.agent_id = #{link.source_id} ORDER BY events.id DESC limit 1 SQL ).first.to_a.first if last_event_id.nil? link.event_id_at_creation = Event.last.id else link.event_id_at_creation = last_event_id end link.save end end def down remove_column :links, :event_id_at_creation end end