class WebsiteAgentDoesNotUseEventUrl < ActiveRecord::Migration[4.2] def up # Until this migration, if a WebsiteAgent received Events and did not have a `url_from_event` option set, # it would use the `url` from the Event's payload. If the Event did not have a `url` in its payload, the # WebsiteAgent would do nothing. This migration assumes that if someone has wired a WebsiteAgent to receive Events # and has not set `url_from_event` or `data_from_event`, they were trying to use the Event's `url` payload, so we # set `url_from_event` to `{{ url }}` for them. Agents::WebsiteAgent.find_each do |agent| next unless agent.sources.count > 0 if !agent.options['data_from_event'].present? && !agent.options['url_from_event'].present? agent.options['url_from_event'] = '{{ url }}' agent.save! puts ">> Setting `url_from_event` on WebsiteAgent##{agent.id} to {{ url }} because it is wired" puts ">> to receive Events, and the WebsiteAgent no longer uses the Event's `url` value directly." end end end def down end end