Domanda

Sono attualmente in esecuzione una migrazione Rails in cui sto aggiungendo una specifica tipo di dati a Postgres, il tsvector. Contiene informazioni di ricerca nella forma che Postgres si aspetta per la sua funzionalità integrate di testo di ricerca.

Questa è la linea del mio migrazione:

t.column "search_vectors", :tsvector

Tutto sembra funzionare bene, e la ricerca funziona con esso. Tuttavia, quando ho aperto schema.rb, questo è quello che ho ottenuto:

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

Questo mi impedisce di esecuzione test di unità sul tavolo dell'utente, e colpisce anche me come veramente pericoloso che sembra dato che lo schema.rb dovrebbe essere la definizione autorevole della mia base di dati.

ho notato ci sono una serie di Rails plugin che sembrano utilizzare lo stesso approccio di memorizzare il tsvector come mi sarei aspettato, come ad esempio tsearchable. Sono davvero appena attaccato senza prove e senza una definizione ufficiale di mio database?

È stato utile?

Soluzione

FYI per chiunque accade attraverso questa pagina, ho risolto questo con l'aggiunta di questo (in realtà decommentando esso) al mio Rails config:
config.active_record.schema_format =: sql

Altri suggerimenti

Hai provato specificando il tipo come una stringa invece di un simbolo?

t.column "search_vectors", "tsvector"

Se questo non dovesse funzionare, allora potrebbe essere necessario scendere fino a database SQL specifica:

def self.up
  execute "--Put your PostgreSQL specific SQL statements here"
end
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top