13

Actualmente estoy ejecutando una migración de Rails en la que estoy agregando un tipo de datos específico para Postgres, el tsvector. Tiene información de búsqueda en la forma que Postgres espera para sus capacidades integradas de búsqueda de texto.Migraciones de rieles con tipos de datos específicos de la base de datos

Esta es la línea de mi migración:

t.column "search_vectors", :tsvector 

Todo parece estar funcionando bien, y la búsqueda de obras con ella. Sin embargo, al abrir bien schema.rb, esto es lo que tengo:

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

Esto me está impidiendo la ejecución de pruebas de unidad en la tabla de usuario, y también me parece muy peligroso que mira dado que el schema.rb se supone que es la definición autorizada de mi base de datos.

Veo que hay una serie de complementos de Rails que parecen utilizar el mismo enfoque de almacenar el tsvector como podría esperar, como tsearchable. ¿De verdad estoy atrapado sin pruebas y sin una definición autorizada de mi base de datos?

Respuesta

11

FYI para cualquier persona que pasa a través de esta página, me fijo esto añadiendo este (en realidad descomentarlo) en mi configuración de Rails:
config.active_record.schema_format =: sql

1

¿Ha intentado especificar el tipo como una cadena en lugar de un símbolo?

t.column "search_vectors", "tsvector" 

Si eso no funciona, entonces puede que tenga que bajar a la base de datos específica de SQL:

def self.up 
    execute "--Put your PostgreSQL specific SQL statements here" 
end 
+0

Cambiar a cadenas no solucionó el problema. Sin embargo, ¿editó su respuesta? Creo que anteriormente tenía una recomendación para cambiar mi configuración a: config.active_record.schema_format =: sql Esto funcionó. –

+0

Yo no. Ese consejo fue eliminado por la persona que lo publicó (Phil Ross) por alguna razón. –

Cuestiones relacionadas