Pergunta

Atualmente, estou executando uma migração do Rails, onde estou adicionando um tipo de dados específico ao Postgres, o TSVector. Ele mantém informações de pesquisa no formulário que o PostGres espera por seus recursos de pesquisa de texto interno.

Esta é a linha da minha migração:

t.column "search_vectors", :tsvector

Tudo parece estar funcionando bem, e a pesquisa funciona com ela. No entanto, quando abri o esquema.rb, é isso que eu consegui:

Could not dump table "users" because of following StandardError
Unknown type 'tsvector' for column 'search_vectors'

Isso está me impedindo de executar testes de unidade na tabela de usuários e também me parece com uma aparência realmente perigosa, uma vez que o esquema.rb deveria ser a definição autorizada do meu banco de dados.

Percebo que existem vários plug -ins de trilhos que parecem usar a mesma abordagem de armazenar o TSVector como eu esperaria, como o TSearchable. Estou realmente preso sem testar e sem uma definição autorizada do meu banco de dados?

Foi útil?

Solução

Para sua informação, para quem acontece nesta página, corrigi isso adicionando isso (na verdade, descommentando -o) à minha configuração de Rails:
config.active_record.schema_format =: sql

Outras dicas

Você já tentou especificar o tipo como uma string em vez de um símbolo?

t.column "search_vectors", "tsvector"

Se isso não funcionar, talvez seja necessário descer para o SQL específico do banco de dados:

def self.up
  execute "--Put your PostgreSQL specific SQL statements here"
end
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top