【问题标题】:Rails Rake ENV variable alwaays emptyRails Rake ENV 变量始终为空
【发布时间】: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


【解决方案1】:

当不使用 database.yml 中的键“url”时,它对我有用。

development:
  <<: *default
  database: <%=ENV['DB_NAME'] %>
  host: <%=ENV['DB_HOST'] %>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-05
    • 1970-01-01
    • 2012-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多