Search code examples
ruby-on-railsrspecrspec-railsruby-on-rails-5

Rails 5, Rspec: Environment data not found in the schema


After upgrading a Rails app to Rails 5, running RSpec tests gives me the following error:

rails aborted!
ActiveRecord::NoEnvironmentInSchemaError: 

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

    bin/rails db:environment:set RAILS_ENV=test

However, that bin does not exist and I can't seem to generate it with bundle binstubs rails or with rake rails:update:bin.

I have also tried:

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

There is a related issue on Github here.

How can I address this error?


Solution

  • New Rails 5 command to generate binstubs:

    rails app:update:bin
    

    Allows me to run the solution as the error suggested:

    bin/rails db:environment:set RAILS_ENV=test
    

    Tip from @max comment: If you are using database_cleaner and this error keeps popping up then change your config to:

    DatabaseCleaner.clean_with(
      :truncation,
      except: %w(ar_internal_metadata)
    )