Add migration to remove draft cards from search index

One-time script to clean up any search records that were indexed
before the searchable? guard was added.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Mike Dalessio
2026-01-23 10:57:50 -05:00
parent 0d138df952
commit a9c6bc2a28
@@ -0,0 +1,22 @@
#!/usr/bin/env ruby
require_relative "../../config/environment"
total_deleted = 0
Account.find_each do |account|
search_record_class = Search::Record.for(account.id)
# Find search records for draft cards (both Card and Comment searchables)
draft_card_ids = Card.where(account_id: account.id, status: "drafted").pluck(:id)
if draft_card_ids.any?
count = search_record_class.where(card_id: draft_card_ids).delete_all
if count > 0
puts "#{account.name}: deleted #{count} search records for draft cards"
total_deleted += count
end
end
end
puts "Migration completed! Total deleted: #{total_deleted}"