У меня есть миграция:
class AddGinIndexToContacts < ActiveRecord::Migration
def up
execute("CREATE INDEX contacts_search_idx ON contacts USING gin (first_name gin_trgm_ops, last_name gin_trgm_ops, name gin_trgm_ops)")
end
def down
execute("DROP INDEX contacts_search_idx")
end
end
Он генерирует этот код в schema.rb
:
add_index "contacts", ["first_name", "last_name", "name"], name: "contacts_search_idx", using: :gin
и позже, когда я выполняю rake db:schema:load
, он генерирует неправильный sql:
CREATE INDEX "contacts_search_idx" ON "contacts" USING gin ("first_name", "last_name", "name")
Во-первых, там сказано:
ОШИБКА: переменный тип данных не имеет класса оператора по умолчанию для метода доступа "gin"
Во-вторых, есть потерянные gin_trgm_ops
.
Как заставить это работать?
Rails 4.2