diff options
author | pluralcafe-docker <docker@plural.cafe> | 2018-08-20 02:29:25 +0000 |
---|---|---|
committer | pluralcafe-docker <docker@plural.cafe> | 2018-08-20 02:29:25 +0000 |
commit | c339d49d82b3fd2873831029d9c92b3fbf1236e3 (patch) | |
tree | 5a8528475f089f1e592dfbedd37ee91e6f748ffc /db | |
parent | b6e9537de469a178ce195b75fe8eaf03735e785a (diff) | |
parent | f4d28ccfa3f9fd38a6d219fcde2d1a8bfcf6b306 (diff) |
Merge branch 'glitch'
Diffstat (limited to 'db')
-rw-r--r-- | db/migrate/20180812173710_copy_status_stats.rb | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/db/migrate/20180812173710_copy_status_stats.rb b/db/migrate/20180812173710_copy_status_stats.rb index 64a564ca0..850aa9c13 100644 --- a/db/migrate/20180812173710_copy_status_stats.rb +++ b/db/migrate/20180812173710_copy_status_stats.rb @@ -3,13 +3,16 @@ class CopyStatusStats < ActiveRecord::Migration[5.2] def up safety_assured do - execute <<-SQL.squish - INSERT INTO status_stats (status_id, reblogs_count, favourites_count, created_at, updated_at) - SELECT id, reblogs_count, favourites_count, created_at, updated_at - FROM statuses - ON CONFLICT (status_id) DO UPDATE - SET reblogs_count = EXCLUDED.reblogs_count, favourites_count = EXCLUDED.favourites_count - SQL + Status.unscoped.select('id').find_in_batches(batch_size: 5_000) do |statuses| + execute <<-SQL.squish + INSERT INTO status_stats (status_id, reblogs_count, favourites_count, created_at, updated_at) + SELECT id, reblogs_count, favourites_count, created_at, updated_at + FROM statuses + WHERE id IN (#{statuses.map(&:id).join(', ')}) + ON CONFLICT (status_id) DO UPDATE + SET reblogs_count = EXCLUDED.reblogs_count, favourites_count = EXCLUDED.favourites_count + SQL + end end end |