From 45c399f0d7c5c4c6964b7e0267478e62a69538ab Mon Sep 17 00:00:00 2001 From: David Taylor Date: Thu, 11 Jun 2020 11:46:28 +0100 Subject: [PATCH] DEV: Correct historical badge and user_badge index discrepancies (#10017) Badge and user_badge tables were created using add_column index: true When the migration was written, `index: true` was a no-op for non-reference columns Since then, rails made it work https://github.com/rails/rails/commit/9a0d35e820464f872b0340366dded639f00e19b9 This migration adds the index to very old sites, so that we have a consistent state --- ...1006172700_create_missing_badge_indexes.rb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 db/migrate/20201006172700_create_missing_badge_indexes.rb diff --git a/db/migrate/20201006172700_create_missing_badge_indexes.rb b/db/migrate/20201006172700_create_missing_badge_indexes.rb new file mode 100644 index 00000000000..7750d8118b6 --- /dev/null +++ b/db/migrate/20201006172700_create_missing_badge_indexes.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +# Badge and user_badge tables were created using add_column index: true +# When the migration was written, `index: true` was a no-op for non-reference columns +# Since then, rails made it work https://github.com/rails/rails/commit/9a0d35e820464f872b0340366dded639f00e19b9 +# This migration adds the index to very old sites, so that we have a consistent state + +# frozen_string_literal: true + +class CreateMissingBadgeIndexes < ActiveRecord::Migration[6.0] + def up + execute "CREATE INDEX IF NOT EXISTS index_user_badges_on_user_id ON public.user_badges USING btree (user_id)" + execute "CREATE INDEX IF NOT EXISTS index_badges_on_badge_type_id ON public.badges USING btree (badge_type_id)" + end + + def down + raise ActiveRecord::IrreversibleMigration + end +end