# frozen_string_literal: true class AddPartialIndexPinnedUntil < ActiveRecord::Migration[6.1] disable_ddl_transaction! # Dropping to raw SQL here due to an ActiveRecord bug which prevents # using `algorithm: :concurrently` and `if_not_exists: true` # https://github.com/rails/rails/pull/41490 def up execute <<~SQL CREATE INDEX CONCURRENTLY IF NOT EXISTS "index_topics_on_pinned_until" ON "topics" ("pinned_until") WHERE pinned_until IS NOT NULL SQL end def down execute <<~SQL DROP INDEX CONCURRENTLY IF EXISTS "index_topics_on_pinned_until" SQL end end