Commit 617f3a2f942fdd157ed1f05642bbcd8042dd6340
Committed by
Rodrigo Souto
1 parent
a710bcc7
Exists in
master
and in
29 other branches
Changed migration to use find_each batch update
Showing
1 changed file
with
7 additions
and
4 deletions
Show diff stats
db/migrate/20150319114233_change_default_content_privacy.rb
... | ... | @@ -3,10 +3,13 @@ class ChangeDefaultContentPrivacy < ActiveRecord::Migration |
3 | 3 | ids = execute("SELECT id from profiles WHERE NOT public_profile") |
4 | 4 | profiles_ids = ids.map { |p| p["id"] } |
5 | 5 | unless ids.num_tuples.zero? |
6 | - execute("UPDATE articles SET published = (1>2), show_to_followers = (1=1) | |
7 | - WHERE profile_id IN (#{profiles_ids.join(",")}) AND published") | |
8 | - blocks = Block.includes(:box).where(:boxes => {:owner_type => "Profile", :owner_id => profiles_ids}).where('type != ?', "MainBlock") | |
9 | - blocks.each do |block| | |
6 | + execute('UPDATE articles SET published = (1>2), show_to_followers = (1=1) | |
7 | + FROM articles AS a INNER JOIN profiles ON a.profile_id = profiles.id | |
8 | + WHERE NOT profiles.public_profile AND articles.id = a.id AND a.published = (1=1)') | |
9 | + Block.includes(:box).where( | |
10 | + :boxes => {:owner_type => "Profile", | |
11 | + :owner_id => profiles_ids}).where( | |
12 | + 'type != ?', "MainBlock").find_each do |block| | |
10 | 13 | block.display_user = 'followers' |
11 | 14 | block.save |
12 | 15 | end | ... | ... |