24 lines
617 B
Ruby
24 lines
617 B
Ruby
# frozen_string_literal: true
|
|
class AddReadNotificationIndex < ActiveRecord::Migration[5.2]
|
|
disable_ddl_transaction!
|
|
|
|
def up
|
|
# doing this by hand cause I am ordering id DESC
|
|
execute <<~SQL
|
|
CREATE UNIQUE INDEX CONCURRENTLY index_notifications_on_read_or_n_type
|
|
ON notifications(user_id, id DESC, read, topic_id)
|
|
WHERE read or notification_type <> 6
|
|
SQL
|
|
|
|
# we need to do this to ensure this index hits
|
|
# on some sites this was missing prior
|
|
execute <<~SQL
|
|
VACUUM ANALYZE notifications
|
|
SQL
|
|
end
|
|
|
|
def down
|
|
raise ActiveRecord::IrreversibleMigration
|
|
end
|
|
end
|