diff options
author | Thibaut Girka <thib@sitedethib.com> | 2018-08-18 18:04:49 +0200 |
---|---|---|
committer | Thibaut Girka <thib@sitedethib.com> | 2018-08-18 18:04:49 +0200 |
commit | bfeac6747a58b660f0d1b3766c7cfb3ea2655fce (patch) | |
tree | e9d1366c30b94df21ec767276fbde175428399fb /db | |
parent | 7423c0c1308555db3072ae64141250fdd33ce235 (diff) | |
parent | 298ee84488758fc08a0ae9233e04c9637aa2fe02 (diff) |
Merge branch 'master' into glitch-soc/merge-upstream
Conflicts: .circleci/config.yml app/controllers/authorize_follows_controller.rb app/javascript/packs/public.js Moved new stuff from packs/public.js to core/public.js. Added appropriate use_pack in new controllers.
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..0c5907c30 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.where.not(id: StatusStat.select('status_id')).select('id').find_in_batches 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 |