From 09d2d4df58db6e5bdaeb205224f4e4d9c2565b73 Mon Sep 17 00:00:00 2001 From: Thorsten Eckel Date: Thu, 12 Nov 2020 12:14:37 +0100 Subject: [PATCH] Follow up - c3fce714dc2ae15785db66950eeaf60d27e1ea8b - Running Scheduler has outdated column information and disables Stats.generate job. --- ...01006131231_stats_store_polymorphic_association.rb | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/db/migrate/20201006131231_stats_store_polymorphic_association.rb b/db/migrate/20201006131231_stats_store_polymorphic_association.rb index 8dfc163d3..3bb0e4103 100644 --- a/db/migrate/20201006131231_stats_store_polymorphic_association.rb +++ b/db/migrate/20201006131231_stats_store_polymorphic_association.rb @@ -8,13 +8,21 @@ class StatsStorePolymorphicAssociation < ActiveRecord::Migration[5.2] # create empty, indexed polymorphic association columns add_reference :stats_stores, :stats_storable, polymorphic: true, index: true + # set last run 20 min in future to avoid scheduler errors until restart + Scheduler.find_by(method: 'Stats.generate').update(last_run: 20.minutes.from_now) + # migrate column data in the most performance way object_lookup_map.each do |id, model| StatsStore.where(stats_store_object_id: id) .update_all("stats_storable_id = o_id, stats_storable_type = '#{model}'") # rubocop:disable Rails/SkipsModelValidations end - # rubocop:disable Rails/ReversibleMigration + remove_unneeded_columns + end + + private + + def remove_unneeded_columns # remove home made "polymorphic association" columns remove_column :stats_stores, :o_id remove_column :stats_stores, :stats_store_object_id @@ -22,6 +30,5 @@ class StatsStorePolymorphicAssociation < ActiveRecord::Migration[5.2] # remove unused/obsolete columns remove_column :stats_stores, :related_stats_store_object_id remove_column(:stats_stores, :related_o_id) if StatsStore.column_names.include?('related_o_id') - # rubocop:enable Rails/ReversibleMigration end end