lor*_*orm 12 env ruby-on-rails environment-variables
我正在接管一个旧的Rails应用程序.一年没人接触过它.最后一位开发者在2015年4月离职,我无法联系他.我确实有ssh访问服务器,我可以访问Github仓库.
我不知道任何用户名/密码.
如果我ssh到服务器并且我捕获了database.yml文件,我会看到类似的东西:
staging:
adapter: mysql2
encoding: utf8
pool: 5
socket: /var/lib/mysql/mysql.sock
database: o_wawa_stage
username: wawa_stage
password: <%= ENV['STAGE_DATABASE_PASSWORD'] %>
host: access.dmedia.com
Run Code Online (Sandbox Code Playgroud)
如果我运行"printenv"命令,那么我没有看到任何这些变量.我假设它们只是由Rails环境加载.
我想我可以编辑模板,用一堆"put"语句吐出值,但我认为必须有一个更明显的方法来做到这一点,除了打印公众可以看到的数据?
如果我尝试运行"rails console",我会得到:
Rails Error: Unable to access log file. Please ensure that /var/www/haha/production/releases/20150118213616/log/development.log exists and is writable (ie, make it writable for user and group: chmod 0664 /var/www/haha/production/releases/20150118213616/log/development.log). The log level has been raised to WARN and the output directed to STDERR until the problem is fixed.
Run Code Online (Sandbox Code Playgroud)
我在这个盒子上没有sudo,所以我无法解决这个错误.
Jos*_*den 15
假设登台环境,如您的示例所示.您需要通过将RAILS_ENV环境变量添加到rails console命令来加载控制台.
RAILS_ENV=staging rails console
Run Code Online (Sandbox Code Playgroud)
这应该让你进入.一旦你进入,你可以直接访问ENV变量.
2.2.2 (main):0 > ENV
Run Code Online (Sandbox Code Playgroud)
这将为您转储环境变量.请注意,您的提示可能会有所不同.如果要访问特定值(例如数据库密码),则可以:
2.2.2 (main):0 > ENV['STAGE_DATABASE_PASSWORD']
Run Code Online (Sandbox Code Playgroud)
小智 6
在您的应用程序目录中,只需启动 Rails 控制台:
rails c
Run Code Online (Sandbox Code Playgroud)
然后根据提示:
ENV
Run Code Online (Sandbox Code Playgroud)
这将列出您上次导出的环境的所有加载的环境变量。
抱歉,发布此内容后,我意识到作者已经尝试使用有错误的 Rails 控制台...但我相当确定这应该始终有效。您不能在控制台中请求 printenv 或 env,必须使用全部大写“ENV”
| 归档时间: |
|
| 查看次数: |
14179 次 |
| 最近记录: |