Ответ 1
FYI для всех, кто попадает на эту страницу, я исправил это, добавив это (фактически раскомментируя его) в мою конфигурацию Rails:
config.active_record.schema_format =: sql
В настоящее время я запускаю миграцию Rails, где я добавляю тип данных, специфичный для Postgres, tsvector. Он содержит информацию для поиска в том виде, в котором Postgres ожидает встроенных возможностей поиска текста.
Это строка моей миграции:
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 должно быть авторитетным определением моей базы данных.
Я замечаю, что есть несколько плагинов Rails, которые, похоже, используют тот же подход для хранения tsvector, как я ожидал, например tsearchable. Я действительно просто застрял без тестирования и без авторитетного определения моей базы данных?
FYI для всех, кто попадает на эту страницу, я исправил это, добавив это (фактически раскомментируя его) в мою конфигурацию Rails:
config.active_record.schema_format =: sql
Вы пытались указать тип как строку вместо символа?
t.column "search_vectors", "tsvector"
Если это не сработает, вам может потребоваться свернуть к SQL-специфическому SQL-адресу:
def self.up
execute "--Put your PostgreSQL specific SQL statements here"
end