生产中的Rails 5控制台没有从环境中读取数据库密码

时间:2017-09-28 13:13:42

标签: ruby-on-rails ruby linux shell

我在Apache上运行Rails应用程序,乘客处于生产模式。

使用SetEnv指令设置应用程序的数据库密码并正常工作。 database.yml中的条目是:

production:
  <<: *default
  database: app_production
  username: app_dbuser
  password: <%= ENV['APP_DBPASSWORD'] %>

我想运行rails console进行生产,所以我在当前的shell中设置了上面这样的变量:

export APP_DBPASSWORD="secret"

然后我启动控制台并试图访问任何记录,但它给出了错误:

$ bin/rails c production
Running via Spring preloader in process 8813
Loading production environment (Rails 5.0.2)
irb(main):001:0> Client.first
Mysql2::Error: Access denied for user 'app_dbuser'@'localhost' (using password: NO)

但是,在控制台ENV['APP_DBPASSWORD']中返回正确的值,请建议。

1 个答案:

答案 0 :(得分:2)

正如DNNX指出的那样,禁用Spring对我有用:

$ DISABLE_SPRING=1 bin/rails c production