rails 4 deployment - rake stderr:config.eager_load设置为nil ..不正确的错误消息

12 deployment ruby-on-rails-4

在Capistrano的项目暂存部署期间,要解决常见的数据库访问错误,我注意到了rake stderr行:

  rake stderr: config.eager_load is set to nil. Please update your config/environments/*.rb files accordingly..
Run Code Online (Sandbox Code Playgroud)

但是,我的config/environments/*rb文件已根据需要正确设置..为什么这条消息?我错过了什么?

我的config/environments/development.rb

 config.eager_load = false
Run Code Online (Sandbox Code Playgroud)

我的config/environments/production.rb

 config.eager_load = true
Run Code Online (Sandbox Code Playgroud)

我的config/environments/test.rb

config.eager_load = false
Run Code Online (Sandbox Code Playgroud)

这是控制台日志的摘录

    Tasks: TOP => db:migrate
    (See full trace by running task with --trace)

    SSHKit::Command::Failed: rake exit status: 1
    rake stdout: Nothing written
    rake stderr: config.eager_load is set to nil. Please update your config/environments/*.rb files accordingly:

      * development - set it to false
      * test - set it to false (unless you use a tool that preloads your test environment)
      * production - set it to true

    rake aborted!
    Mysql2::Error: Access denied for user 'root'@'localhost' (using password: NO)
Run Code Online (Sandbox Code Playgroud)

dim*_*mid 5

我在部署时遇到了类似的问题

cap staging deploy
Run Code Online (Sandbox Code Playgroud)

问题是 capistrano 正在寻找数据库myapp_staging,而我需要myapp_production

我通过添加修复了它

set :stage, "production"
Run Code Online (Sandbox Code Playgroud)

config/deploy/staging.rb


Bri*_*汤莱恩 1

(在评论中回答。已转换为社区 wiki 答案。请参阅没有答案的问题,但问题已在评论中解决(或在聊天中扩展)

@amoebe 写道:

我认为这里的主要问题是 MySQL 凭据错误。

OP 写道:

你是对的,我必须通过任务capistranosetup:upload_yml)来管理我的生产/暂存部署凭据,以将secrets.ymldatabase.yml 上传到我的远程服务器......现在运行良好......