Чтобы использовать индекс триграмм, мне нужно написать так.
add_index :people, :last_name, using: :gist, opclass: { last_name: :gist_trgm_ops }
И я хочу использовать его с LOWER
функцией.
add_index :people, "lower(last_name)", using: :gist, opclass: { "lower(last_name)" => :gist_trgm_ops }
Я могу запустить это миграция, но, похоже, индекс не создан должным образом. С помощью команды execute
я мог бы создать правильный индекс.
execute "CREATE INDEX index_people_on_lower_last_name ON people USING GIST (lower(last_name) gist_trgm_ops);"
Насколько возможно, я хочу избежать использования execute
. Есть ли лучший способ написать файл миграции для индекса триграмм с помощью функции postgres?