Question

Je suis actuellement une migration Rails où je suis d'ajouter un type de données spécifique à Postgres, le tsvector. Il contient des informations de recherche sous la forme que Postgres attend pour son texte intégré dans les capacités de recherche.

Ceci est la ligne de ma migration:

t.column "search_vectors", :tsvector

Tout semble fonctionner très bien, et la recherche fonctionne avec elle. Cependant, quand j'ai ouvert schema.rb, voilà ce que je suis:

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

Ce qui me empêche d'exécuter des tests unitaires sur la table utilisateur, et aussi me semble vraiment dangereux regardant étant donné que le schema.rb est censé être la définition faisant autorité de ma base de données.

Je remarque qu'il ya un certain nombre de plugins Rails qui semblent utiliser la même approche de stockage du tsvector comme j'attendre, comme tsearchable. Suis-je vraiment juste coincé sans essai et sans une définition faisant autorité de ma base de données?

Était-ce utile?

La solution

Pour votre information pour tous ceux qui se dans cette page, je fixe en ajoutant ce (en fait décommentant il) à ma config Rails:
config.active_record.schema_format =: SQL

Autres conseils

Avez-vous essayé de spécifier le type comme une chaîne au lieu d'un symbole?

t.column "search_vectors", "tsvector"

Si cela ne fonctionne pas, alors vous pourriez avoir besoin de descendre à SQL spécifique à la base de données:

def self.up
  execute "--Put your PostgreSQL specific SQL statements here"
end
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top