【发布时间】: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']}"
标签: ruby-on-rails ruby rake jruby