Я в настоящее время выполняю миграцию направляющих, где я добавляю тип данных, характерный для Пост-ГРЭС, tsvector. Это содержит поисковую информацию в форме, которую Пост-ГРЭС ожидает для ее встроенного текста, ищущего возможности.
Это - строка от моей миграции:
t.column "search_vectors", :tsvector
Все, кажется, хорошо работает, и поисковые работы с ним. Однако, когда я открыл schema.rb, это - то, что я получил:
Could not dump table "users" because of following StandardError
Unknown type 'tsvector' for column 'search_vectors'
Это препятствует тому, чтобы я выполнил модульные тесты на пользовательской таблице и также кажется мне действительно опасным взглядом, учитывая, что schema.rb, как предполагается, является авторитетным определением моей базы данных.
Я замечаю, что существует много плагинов направляющих, которые, кажется, используют тот же подход хранения tsvector как, я ожидал бы, такой как tsearchable. Я действительно просто застревают, не тестируя и без авторитетного определения моей базы данных?
К вашему сведению на этой странице я исправил это, добавив это (фактически раскомментировав) в свою конфигурацию Rails:
config.active_record.schema_format =: sql
Пробовали ли вы указать тип как строку, а не как символ?
t.column "search_vectors", "tsvector"
Если это не сработает, то вам, возможно, придется перейти к SQL, специфичному для базы данных:
def self.up
execute "--Put your PostgreSQL specific SQL statements here"
end