# frozen_string_literal: true class AddIndexesToNotifications < ActiveRecord::Migration[7.0] disable_ddl_transaction! def up execute <<~SQL DROP INDEX IF EXISTS index_notifications_user_menu_ordering SQL execute <<~SQL CREATE INDEX CONCURRENTLY index_notifications_user_menu_ordering ON notifications ( user_id, (high_priority AND NOT read) DESC, (NOT read) DESC, created_at DESC ); SQL execute <<~SQL DROP INDEX IF EXISTS index_notifications_user_menu_ordering_deprioritized_likes SQL execute <<~SQL CREATE INDEX CONCURRENTLY index_notifications_user_menu_ordering_deprioritized_likes ON notifications ( user_id, (high_priority AND NOT read) DESC, (NOT read AND notification_type NOT IN (5,19,25)) DESC, created_at DESC ); SQL end def down raise ActiveRecord::IrreversibleMigration end end