sqlite3 на рельсах: create_table с использованием collate nocase

Использование rails 4.2.0 с ruby ​​v2.3.0p0

Я хочу создать индексы, которые не чувствительны к регистру, так как большинство моих поисков нечувствительны к регистру, и я не хочу каждый раз выполнять поиск по полной таблице.

Поэтому в моих миграциях create_table я пытаюсь добавить такие строки, как:

add_index :events, :name, :COLLATE => :NOCASE

И когда я мигрирую, я получаю:

== 20150515163641 CreateEvents: migrating =====================================
-- create_table(:events)
   -> 0.0018s
-- add_index(:events, :submitter, {:COLLATE=>:NOCASE})
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:

Unknown key: :COLLATE. Valid keys are: :unique, :order, :name, :where, :length, :internal, :using, :algorithm, :type

Как я могу создать регистронезависимый индекс в моих файлах миграции, используя SQLITE3 и rails?

ОБНОВИТЬ ------------------------

БлагодаряЭнтониПомогите, я вижу, что rails пока не поддерживает сортировку / сортировку в коде Sqlite3.

Поэтому я попытался написать это вручную в своей миграции, основываясь на синтаксисе, который сгенерирует Rails, но с добавленной опцией collate:

execute("CREATE INDEX 'index_events_on_name' ON 'events' ('name' COLLATE NOCASE);")

Согласно Sqlite3, это создает индекс должным образом, но Schema.rb теперь, конечно, неверен.

И что более важно, при поиске он все равно не выполняет сравнения без учета регистра:

Event.where("name == ?",name)
Event.find_by_name(name)

Как мне убедить рельсы использовать созданный мной индекс?

Ответы на вопрос(2)

Ваш ответ на вопрос