From ebdf94e34655f43bb764ac81e141b0282d2bffea Mon Sep 17 00:00:00 2001 From: Sebastian Kippe Date: Wed, 31 Oct 2018 22:09:43 +0100 Subject: [PATCH] Revert "Skip incompatible migration entirely" This reverts commit 545eb6385d73efb004dd73535adc5279cd7b7a92. --- .../20180812173710_copy_status_stats.rb | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/db/migrate/20180812173710_copy_status_stats.rb b/db/migrate/20180812173710_copy_status_stats.rb index e441808e2..850aa9c13 100644 --- a/db/migrate/20180812173710_copy_status_stats.rb +++ b/db/migrate/20180812173710_copy_status_stats.rb @@ -2,19 +2,18 @@ class CopyStatusStats < ActiveRecord::Migration[5.2] disable_ddl_transaction! def up - # FIXME upserts don't work in PostgreSQL 9.4, so we're skipping this for now. - # safety_assured do - # 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 + safety_assured do + 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 def down