Подумайте 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 methoddeltas_enabled = 'для ThinkingSphinx:Module`

Как я могу выключить его?

1 ответ

Решение

ThinkingSphinx.deltas_enabled настройка для Thinking Sphinx v1/v2.

С Thinking Sphinx v3 (и я настоятельно рекомендую обновить его до последней версии 3.0.3), вы можете сделать это с помощью этой команды:

ThinkingSphinx::Deltas.suspend!

Если в какой-то момент вы хотите включить их снова, есть resume! метод также.

Другие вопросы по тегам