ruby-on-rails - validations - rspec что это




Rails 5, Rspec: данные среды, не найденные в схеме (4)

Для меня за этой ошибкой последовала аналогичная просьба о миграции.

Это сделало трюк: rails db:migrate RAILS_ENV=test

После обновления Rails-приложения до Rails 5 запуск RSpec-тестов дает мне следующую ошибку:

rails aborted!
ActiveRecord::NoEnvironmentInSchemaError: 

Environment data not found in the schema. To resolve this issue, run: 

    bin/rails db:environment:set RAILS_ENV=test

Тем не менее, этот bin не существует, и я не могу его сгенерировать с помощью bundle binstubs rails или rake rails:update:bin .

Я также пробовал:

rails db:environment:set RAILS_ENV=test
rake db:environment:set RAILS_ENV=test

В Github есть связанная с этим проблема.

Как я могу устранить эту ошибку?


Для меня я должен был сделать смесь вещей:

bin/rails db:environment:set RAILS_ENV=test
bin/rails db:migrate RAILS_ENV=test

Это заставило бы все работать, а затем мне пришлось пересмотреть мои миграции, я добавлял null: false в отношения и добавлял ошибку, миграция была отменена и не закончилась


Мне пришлось отбросить мою базу данных для тестирования и снова создать ее:

  1. psql
  2. DROP DATABASE your_db_name_test;
  3. bundle exec rake db:create RAILS_ENV=test

После этого предупреждающий bin/rails db:environment:set RAILS_ENV=test исчез.


Однако все приведенные выше ответы верны, если вы работаете в более уникальном проекте, таком как разработка движка rails с концепцией схемы (хаки, я знаю), и по какой-то причине ваша миграция не удалась, вы можете повторно запустить это без проверки, которая выбрасывает это исключение. Пример:

rake environment db:{drop,create,migrate} DISABLE_DATABASE_ENVIRONMENT_CHECK=1





ruby-on-rails-5