Skip to content

Instantly share code, notes, and snippets.

@julesce
Last active August 29, 2015 13:57
Show Gist options
  • Save julesce/9763295 to your computer and use it in GitHub Desktop.
Save julesce/9763295 to your computer and use it in GitHub Desktop.
RSS promotion default migrations
# This migration will loop through all RssPromotions and ensure that the default values from the 'unsent'
# mailing are correctly migrated to the new defaults created for RssPromotions, specifically:
# - new fields on the rss_promotion
# - rss_promotion has_and_belongs_to_many :audience_lists
# - rss_promotion has_and_belongs_to_many :audience_members
migrated_count = 0
RssPromotion.find_each do |rss_promotion|
mailing = rss_promotion.mailing
migrated = false
if rss_promotion.subject.blank?
rss_promotion.update_attributes(:from_address => mailing.from_address, :subject => mailing.subject, :all_audience => mailing.all_audience, :disable_link_tracking => mailing.disable_link_tracking)
migrated = true
end
if rss_promotion.audience_lists.blank? && mailing.audience_lists.present?
rss_promotion.audience_lists = mailing.audience_lists
rss_promotion.save
migrated = true
end
if rss_promotion.audience_members.blank? && mailing.potential_audience_members.present?
rss_promotion.audience_members = mailing.potential_audience_members
rss_promotion.save
migrated = true
end
if migrated
puts "Migrated RSS Promotion #{rss_promotion.id}."
migrated_count += 1
end
end
puts "Migrated #{migrated_count} RSS promotions in total."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment