Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

rake test prepare: NoMethodError: undefined method `[]' for nil:NilClass

I always get the following error when I run rake db:test:prepare. what can cause this? rake db:create works fine.

 Adam-MacBook-Pro:katy adam$ bundle exec rake db:test:prepare
    rake aborted!
    NoMethodError: undefined method `[]' for nil:NilClass
    /Users/adam/.rvm/gems/ruby-2.2.2/gems/activerecord-4.2.4/lib/active_record/tasks/database_tasks.rb:163:in `purge'
    /Users/adam/.rvm/gems/ruby-2.2.2/gems/activerecord-4.2.4/lib/active_record/railties/databases.rake:356:in `block (3 levels) in <top (required)>'
    /Users/adam/.rvm/gems/ruby-2.2.2/gems/activerecord-4.2.4/lib/active_record/railties/databases.rake:362:in `block (3 levels) in <top (required)>'
    /Users/adam/.rvm/gems/ruby-2.2.2/bin/ruby_executable_hooks:15:in `eval'
    /Users/adam/.rvm/gems/ruby-2.2.2/bin/ruby_executable_hooks:15:in `<main>'

database.yml

<%= Rails.env %>:
  adapter: mysql2
  encoding: utf8
  pool: <%= ENV['DB_POOL'] || 5 %>
  username: <%= ENV['DB_USER'] || 'root' %>
  password: <%= ENV['DB_PASSWORD'] || nil %>
  timeout: <%= ENV['DB_TIMEOUT'] || 5000 %>
  host: <%= ENV['DB_HOST'] || 'localhost' %>
  port: <%= ENV['DB_PORT'] || 3306 %>
  database: <%= ENV['DB_NAME'] || "website#{Rails.env}" %>
like image 565
delpha Avatar asked Oct 21 '25 15:10

delpha


2 Answers

Try specifying the RAILS_ENV when you run the rake command:

RAILS_ENV=test bundle exec rake db:test:prepare
like image 194
K M Rakibul Islam Avatar answered Oct 24 '25 13:10

K M Rakibul Islam


refer this might be the same issue rake db:test:load, undefined method `[]' for nil:NilClass

or try this

RAILS_ENV=test rake db:setup
like image 26
Deepak Mahakale Avatar answered Oct 24 '25 14:10

Deepak Mahakale



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!