sqlite3 nos trilhos: create_table usando collase nocase

Usando trilhos 4.2.0 com ruby v2.3.0p0

Quero criar índices que não diferenciam maiúsculas de minúsculas, pois a maioria das minhas pesquisas não diferencia maiúsculas de minúsculas e não quero ter que fazer uma pesquisa de tabela completa todas as vezes.

Portanto, nas minhas migrações create_table, tento adicionar linhas como:

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

E quando migro, recebo:

== 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

Como posso criar um índice que não diferencia maiúsculas de minúsculas nos meus arquivos de migração usando o SQLITE3 e os trilhos?

ATUALIZAÇÃO ------------------------

Graças aAnthonyda ajuda, vejo que os trilhos ainda não suportam agrupamento / agrupamento no código Sqlite3.

Então, tentei escrevê-lo manualmente na minha migração, com base na sintaxe que o Rails geraria, mas com a opção agrupar adicionada:

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

Isso cria o índice corretamente, de acordo com o Sqlite3, mas o Schema.rb agora está errado, é claro.

E o mais importante, ainda não parece fazer comparações que diferenciam maiúsculas de minúsculas quando eu procuro:

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

Como convencer os trilhos a usar o índice que criei?

questionAnswers(2)

yourAnswerToTheQuestion