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 不能按要求工作

linux字符测试

java判断字符串是不是为空

获取:“迁移待定;运行 'bin/rake db:migrate RAILS_ENV=development' 来解决此问题。”克隆和迁移项目后

CH2 Hartl 教程迁移正在等待。要解决此问题,请运行: bin/rake db:migrate RAILS_ENV=development

类 Observable 对象 @Published 变量始终为空