Подумайте Sphinx 3.0.1, как отключить дельта-индексы при тестировании с Rspec
У меня включена дельта-индексация по умолчанию для всех моих моделей:
ThinkingSphinx::Index.define :book, :with => :active_record, :delta => (::Padrino.env == :production ? ThinkingSphinx::Deltas::SidekiqDelta : true) do
Я хотел бы отключить дельта-индексирование при запуске Rspec (поскольку тесты выполняются дольше, и я также получаю сообщение об ошибке, что файл delta.spl недоступен: FATAL: failed to open db/sphinx/test/book_delta.spl: No such file or directory, will not index. Try --rotate option.
)
Я пытался установить его в false в spec/support/sphinx.rb
файл, как сказано в документации TS:
config.before(:suite) do
ThinkingSphinx::Test.init, suppress_delta_output: false
ThinkingSphinx.deltas_enabled = false # try to turn delta indexing off for the Controller and Model tests
end
Но дельта-индексы все еще выполняются для каждого теста, который вставляет новые данные, даже для данных, вставленных на фабрике Factory Girl.
Выкладываю эту строку: ThinkingSphinx.deltas_enabled = false
в любой из моих спецификаций приводит к отсутствию ошибки метода: : undefined method
deltas_enabled = 'для ThinkingSphinx:Module`
Как я могу выключить его?
1 ответ
ThinkingSphinx.deltas_enabled
настройка для Thinking Sphinx v1/v2.
С Thinking Sphinx v3 (и я настоятельно рекомендую обновить его до последней версии 3.0.3), вы можете сделать это с помощью этой команды:
ThinkingSphinx::Deltas.suspend!
Если в какой-то момент вы хотите включить их снова, есть resume!
метод также.