diff --git a/db/migrate/20150319114233_change_default_content_privacy.rb b/db/migrate/20150319114233_change_default_content_privacy.rb index 7cd861b..e3785ab 100644 --- a/db/migrate/20150319114233_change_default_content_privacy.rb +++ b/db/migrate/20150319114233_change_default_content_privacy.rb @@ -1,18 +1,14 @@ 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 + update_sql('UPDATE articles SET published = (1>2), show_to_followers = (1=1) + FROM profiles WHERE articles.profile_id = profiles.id AND + NOT profiles.public_profile AND articles.published = (1=1)') + + Block.select('blocks.*').joins("INNER JOIN boxes ON blocks.box_id = boxes.id + INNER JOIN profiles ON boxes.owner_id = profiles.id AND boxes.owner_type = 'Profile'"). + where("NOT profiles.public_profile AND blocks.type != 'MainBlock'").find_each do |block| + block.display_user = 'followers' + block.save end change_column :articles, :show_to_followers, :boolean, :default => true end -- libgit2 0.21.2