13

Şu anda bir Gönderi geçişi yayınlıyorum, burada Postvres'e özgü bir veri türü ekliyorum, tsvector. Arama bilgilerini, Postgres'in yerleşik metin arama yetenekleri için beklediği biçimde tutar.Veritabanlarına özgü veri türleriyle geçişi yönlendirir

t.column "search_vectors", :tsvector 

Her şey iyi çalışıyor görünüyor ve arama onunla çalışır:

Bu

benim taşımaya ait çizgidir.

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

Bu aynı zamanda kullanıcı masaya birim testleri çalışmasını beni engelleyen ve schema.rb göz önüne alındığında seyir beni gerçekten tehlikeli grev: Ben schema.rb açtı Ancak, bu bende ne olduğunu Veritabanımın yetkili tanımı olması gerekiyordu.

Tsvector'ı beklediğim gibi depolamak gibi aynı yaklaşımı kullanmakta gibi görünen bir dizi Rails eklentisi var. Gerçekten test olmadan ve veritabanımın yetkili bir tanımı olmadan takıldım mı?

cevap

11

, bu ekleyerek bu sabit:

t.column "search_vectors", "tsvector" 

o zaman işe yaramazsa size veritabanına özel SQL aşağı düşmesi gerekebilir Rails yapılandırmam için:
config.active_record.schema_format =: sql

1

Türü, bir sembol yerine dize olarak belirtmeyi denediniz mi? aslında (

bu sayfa boyunca olur herkes için Bilginize
def self.up 
    execute "--Put your PostgreSQL specific SQL statements here" 
end 
+0

Dizeleri değiştirmek sorunu çözmedi. Bununla birlikte, yanıtınızı düzenlediniz mi? Önceden yapılandırmamı değiştirmek için bir öneriniz olduğunu düşünüyorum: config.active_record.schema_format =: sql Bu işe yaradı. –

+0

Not me. Bu tavsiyeyi yapan kişi (Phil Ross) tarafından bir nedenle silindi. –