Frage

Ich laufe derzeit eine Rails Migration, wo ich bin das Hinzufügen eines Datentyp spezifisch für Postgres, der tsvector. Es hält Suchinformationen in der Form, dass Postgres für seine eingebauten Text Suchfunktionen erwartet.

Das ist die Linie von meiner Migration:

t.column "search_vectors", :tsvector

scheint alles in Ordnung sein zu arbeiten, und die Suche funktioniert mit ihm. Allerdings, wenn ich bis schema.rb geöffnet, das ist, was ich habe:

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

Dies hindert mich an der Ausführung von Unit-Tests für die Benutzertabelle und auch scheint mich wirklich gefährlich gegeben suchen, die schema.rb soll die maßgebliche Definition meiner Datenbank sein.

Ich stelle fest, gibt es eine Reihe von Rails-Plugins sind, die den gleichen Ansatz zu verwenden, scheinen die tsvector zu speichern, wie ich erwarten würde, wie tsearchable. Bin ich wirklich nur stecken, ohne Prüfung und ohne eine verbindliche Definition meiner Datenbank?

War es hilfreich?

Lösung

Zu Ihrer Information für alle, die über diese Seite geschehen, fixierte ich dies durch das Hinzufügen von (eigentlich ist es uncommenting) meine Rails config:
config.active_record.schema_format = SQL

Andere Tipps

Haben Sie versucht, den Typ als Zeichenfolge anstelle eines Symbols Angabe?

t.column "search_vectors", "tsvector"

Wenn das nicht funktioniert, dann Sie Datenbank-spezifische SQL-Dropdown müssen möglicherweise an:

def self.up
  execute "--Put your PostgreSQL specific SQL statements here"
end
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top