这有效:
production:
adapter: mysql2
encoding: utf8
host: localhost
database: myapp
username: myapp
password: jksdfUIJsdf
然后在终端touch tmp/restart.txt
上。
这不起作用:
production:
adapter: mysql2
encoding: utf8
host: localhost
database: myapp
username: myapp
password: <%= ENV['MYAPP_DATABASE_PASSWORD'] %>
然后在终端
export MYAPP_DATABASE_PASSWORD=jksdfUIJsdf
touch tmp/restart.txt
因此,如果我在database.yml文件中将密码设置为明文,那么我的应用程序正常工作但如果我使用export命令将密码设置为环境变量,那么我的应用程序无法正常工作,因为它会丢失错误密码。我正在使用mysql数据库。怎么解决这个问题?
答案 0 :(得分:0)
对于Rails应用配置,我使用figaro gem.
将以下行添加到Gemfile
并执行bundle
。
gem "figaro"
之后运行以下命令:
bundle exec figaro install
这将创建config/application.yml
,并将其添加到.gitignore
文件。
现在在config/application.yml
内输入凭据。
# config/application.yml
MYAPP_DATABASE_PASSWORD: "2954"
答案 1 :(得分:0)
触摸tmp/restart.txt
时,您不是在启动新的Rails服务器,而是在告诉现有服务器重新加载自身。现有服务器仍将具有其启动时使用的环境,并且在此之后将永远不会看到您设置的任何环境变量。