rake assets:precompile attempting to connect to database

前端 未结 6 845
余生分开走
余生分开走 2020-12-14 06:24

I\'m attempting to debug why my application is attempting to connect to my database when I run rake assets:precompile --trace.

I\'m probably missing so

6条回答
  •  [愿得一人]
    2020-12-14 06:59

    Newer versions of Rails do not load the database during asset precompile. However, initializers will often cause it to load. This can be frustrating to debug, because the error omits the stack trace.

    ./bin/rails assets:precompile
    (in ~/src/nautilus)
    rake aborted!
    ActiveRecord::NoDatabaseError: FATAL:  database "your_app_development" does not exist
    bundler: failed to load command: rake (~/src/your_app/vendor/bundle/ruby/2.6.0/bin/rake)
    NoMethodError: undefined method `reject' for nil:NilClass
    

    The less than helpful error.


    So, how do we figure out where the problem is?

    Move all the initializers out of config/initializers then run ./bin/rails assets:precompile.

    If it works, great, you know the problem is in one of those files.

    Move them back one by one till you find the offending file(s).


    Now that the problem was found, how do we fix it?

    Then when I find an initialilzer that has a problem I wrap it with the following check:

    unless ARGV.include? "assets:precompile"
      # ...
    end
    

    I prefer this over the nulldb because it reduces the number of dependencies I have to maintain in the app.

提交回复
热议问题