Gate search_record shard migrations on adapter type

This commit is contained in:
Donal McBreen
2025-11-21 11:44:37 +00:00
parent 2e4d0b38db
commit e76f159f05
2 changed files with 8 additions and 3 deletions
@@ -1,5 +1,7 @@
class AddAccountKeyToSearchRecords < ActiveRecord::Migration[8.2]
def up
return if ActiveRecord::Base.connection.adapter_name == "SQLite"
16.times do |shard_id|
table_name = "search_records_#{shard_id}"
@@ -9,6 +11,8 @@ class AddAccountKeyToSearchRecords < ActiveRecord::Migration[8.2]
end
def down
return if ActiveRecord::Base.connection.adapter_name == "SQLite"
16.times do |shard_id|
table_name = "search_records_#{shard_id}"
@@ -1,14 +1,15 @@
class RemoveOldFulltextIndexesFromSearchRecords < ActiveRecord::Migration[8.2]
def up
# Remove the old fulltext indexes (content, title) from all 16 search_records shards
# We're keeping the new indexes (account_key, content, title) for tenant-aware searching
return if ActiveRecord::Base.connection.adapter_name == "SQLite"
(0..15).each do |shard|
remove_index "search_records_#{shard}", name: "index_search_records_#{shard}_on_content_and_title"
end
end
def down
# Re-create the old fulltext indexes in case we need to rollback
return if ActiveRecord::Base.connection.adapter_name == "SQLite"
(0..15).each do |shard|
add_index "search_records_#{shard}", [ :content, :title ], type: :fulltext, name: "index_search_records_#{shard}_on_content_and_title"
end