Searchkick терпит неудачу на Travis CI

Я только что интегрировал Searchkick в свое приложение Rails 4.1, и моя сборка Travis CI просто не удалась. Я решил первую ошибку, добавив службу elasticsearch в свой .travis.yml, но команду «переиндексировать» модель нужно выполнить через консоль Rails, и это ошибка:

Failure/Error: Unable to find matching line from backtrace
     RuntimeError:
       Index missing - run Item.reindex

Итак, как мне проиндексировать модель, выпустив «Model.reindex» в Travis CI?

Вот мой файл .travis.yml:

language: ruby
rvm:
  - 2.0.0-p247
env:
  - DB=sqlite
  - DB=mysql
  - DB=postgresql
services:
  - elasticsearch
script:
  - RAILS_ENV=test bundle exec rake db:migrate --trace
  - bundle exec rake db:test:prepare
  - bundle exec rspec spec/
before_script:
  - mysql -e 'create database mbb_test'
  - psql -c 'create database mbb_test;' -U postgres
bundler_args: --binstubs=./bundler_stubs

person yretuta    schedule 28.04.2014    source источник


Ответы (3)


Оказывается, мне просто нужно было добавить это в мой помощник по тестированию (в моем случае spec_helper.rb), чтобы элемент получал «переиндексацию» при каждом тесте:

config.before(:each) do
  Item.reindex
end

ЛУЧШАЯ ВЕРСИЯ

config.before(:each, es: true) do
    if Item.searchkick_index.exists?
      Item.searchkick_index.delete
      Item.reindex
    end
  end

взято с: https://github.com/ankane/searchkick/pull/95

person yretuta    schedule 30.04.2014

Если все, что вам нужно сделать, это проиндексировать базу данных, попробуйте rails runner "<your rails console command here>" сразу после переноса и настройки базы данных.

person joshua-anderson    schedule 29.04.2014
comment
bundle exec rake searchkick:reindex:all выполнит работу - person Andrew Kane; 29.04.2014
comment
@AndrewKane, возможно, вы захотите добавить это в качестве ответа. bundle exec rake searchkick:reindex:all помещенный в раздел script: перед bundle exec rspec spec/ тоже работает - person yretuta; 30.04.2014

Добавьте следующее в свой .travis.yml

services:
 - elasticsearch

Источник: https://docs.travis-ci.com/user/database-setup/#elasticsearch.

Работал на меня.

person bright    schedule 07.05.2019