20150319114233_change_default_content_privacy.rb 870 Bytes
class ChangeDefaultContentPrivacy < ActiveRecord::Migration
  def up
    ids = execute("SELECT id from profiles WHERE NOT public_profile")
    profiles_ids = ids.map { |p| p["id"] }
    unless ids.num_tuples.zero?
      execute('UPDATE articles SET published = (1>2), show_to_followers = (1=1)
       FROM articles AS a INNER JOIN profiles ON a.profile_id = profiles.id
        WHERE NOT profiles.public_profile AND articles.id = a.id AND a.published = (1=1)')
      Block.includes(:box).where(
        :boxes => {:owner_type => "Profile", 
          :owner_id => profiles_ids}).where(
            'type != ?', "MainBlock").find_each do |block|
        block.display_user = 'followers'
        block.save
      end
    end
    change_column :articles, :show_to_followers, :boolean, :default => true
  end

  def down
    say "this migration can't be reverted"
  end
end