Rails Rake ENV 变量始终为空
Posted
技术标签:
【中文标题】Rails Rake ENV 变量始终为空【英文标题】:Rails Rake ENV variable alwaays empty 【发布时间】:2021-12-22 19:24:12 【问题描述】:我在 database.yml 和 rake 中使用 ENV 变量时遇到问题。
配置文件database.yml
development:
<<: *default
url: "mysql://user:pass@<%=ENV['DB_HOST'] %>
启动命令
jruby -S bundle exec rake assets:clean
与
URI::InvalidURIError: the scheme mysql does not accept registry part: user:pass@ (or bad hostname?)
rake 运行时似乎 DB_HOST 为空,但系统中已明确设置。
我正在使用 JRuby 6.3.1。 在 IntelliJ 中启动项目时,它运行良好。
【问题讨论】:
它在系统中明确设置:什么是“系统”,您如何验证它是否已设置? 系统是ubuntu 20.04,通过echo $DB_HOST验证ENV['DB_HOST']
在rails console
中工作吗? database.yml
是通过 ERB 解析的吗?
echo
不会告诉您变量是否在环境中。改为使用printenv DB_HOST
。
你试过这样做吗? url: "mysql://user:pass@#ENV['DB_HOST']"
【参考方案1】:
当不使用 database.yml 中的键“url”时,它对我有用。
development:
<<: *default
database: <%=ENV['DB_NAME'] %>
host: <%=ENV['DB_HOST'] %>
【讨论】:
以上是关于Rails Rake ENV 变量始终为空的主要内容,如果未能解决你的问题,请参考以下文章
rake assets:precompile RAILS_ENV=production 不能按要求工作
获取:“迁移待定;运行 'bin/rake db:migrate RAILS_ENV=development' 来解决此问题。”克隆和迁移项目后
CH2 Hartl 教程迁移正在等待。要解决此问题,请运行: bin/rake db:migrate RAILS_ENV=development