【问题标题】:Set environment variables in Counterclockwise逆时针设置环境变量
【发布时间】:2016-05-01 18:19:20
【问题描述】:

我正在尝试在 Eclipse 中设置生产和开发配置文件,以便在 Heroku 上部署我的 compojure/ring 应用程序。但是,逆时针插件不会从配置文件加载环境变量。我已经在环境选项卡中添加了变量并重新启动了 REPL,但变量仍然不可用。这就是我添加它们的方式:environment variables

我也尝试将变量添加到profiles.clj,但无济于事:

`:profiles
    {:production
      {:ring
        {:open-browser? false, 
         :stacktraces? false, 
         :auto-reload? false}
       :env {:port 3000
           :db-url "//localhost/login"
           :db-user "test"
           :db-pass "test"
           :galleries-path "test"}}
       :dev
        {:dependencies [[ring-mock "0.1.5"]
                        [ring/ring-devel "1.2.0"]]
        :env {:port 3000
              :db-url "//localhost/gallery"
              :db-user "test"
              :db-pass "testProd"
              :galleries-path "galleries"}}}`

【问题讨论】:

    标签: heroku clojure counterclockwise environ


    【解决方案1】:

    当您使用 environ 时,它会自动将 "DB_URL" 强制转换为更惯用的 :db-url。查看 environ 的强制代码,它似乎并不重要,但我会尝试将您在 Environment 选项卡中设置的所有环境变量大写并下划线。

    【讨论】:

    • 进行建议的编辑后,我收到以下错误: db-spec {:password nil, :subprotocol "postgresql", :user nil, :subname nil} is missing a required parameter 这是我的 db-spec: (def db {:subprotocol "postgresql" :subname (env :db-url) :user (env :db-user) :password (env :db-pass)}) 我只是不知道需要的参数是什么。
    • 可能 nil 值是缺失的值?
    • 你是对的。但是,问题不在于缺少 nil 值,而是没有正确评估它们,这又回到了您关于环境如何强制环境变量的观点。在建议的更改之后,我的 db-spec 如下所示:(def db {:subprotocol "postgresql" :subname (env :DB_URL) :user (env :DB_USER) :password (env :DB_PASS)}) 当我运行 db 时,我得到以下结果:=> db {:subprotocol "postgresql", :subname nil, :user nil, :password nil}
    猜你喜欢
    • 2018-07-13
    • 2014-12-17
    • 2014-09-24
    • 1970-01-01
    • 2016-02-03
    • 2012-04-04
    • 2014-09-05
    • 2013-03-03
    • 2019-01-15
    相关资源
    最近更新 更多