【问题标题】:How can I use a value in my profiles.clj in another section of my profile/project configuration?如何在我的配置文件/项目配置的另一部分中使用我的profiles.clj 中的值?
【发布时间】:2016-10-22 08:28:46
【问题描述】:

我正在使用带有environ 的 Leiningen 创建一个 clojure 项目,以保留一个用于管理项目 profiles.clj 或环境变量中的数据库连接的 uri,我想尝试使用 lein-flyway 来管理数据库迁移.

Lein-flyway 有自己的配置指定数据库 uri,我不希望我的同事将连接 uri 放在他们的配置中的两个位置。

目前,profiles.clj 未签入,看起来像这样:

{:profiles/dev 
 {:env {:database-url
        "jdbc:postgresql://localhost/project?user=$USER&password=$PASS"}}
 :profiles/test
  {:env {:database-url
         "jdbc:postgresql://localhost/project_test?user=$USER&password=$PASS"}}}

我想在我的profiles.clj 中的:profiles/dev 映射或project.clj 中的:project/dev 映射中添加如下条目。

:flyway {:url ~(get-in profile-map [:profiles/dev :env :database-url])}

似乎我可以在我的 project.clj 中删除profiles.clj 并在那里提取密钥,并将其插入到适当位置的项目映射中。那是最好的选择吗?有没有更简单的方法来重用这样的值?

【问题讨论】:

    标签: clojure leiningen flyway environ


    【解决方案1】:

    我不知道我是否理解正确,但也许this 可以帮助你。

    【讨论】:

    • 复合配置文件没有帮助。这将合并两个不同的配置文件。我想让我的数据库 url 出现在我的个人资料中的两个不同的关键路径中;如果不复制配置中的 url,或者在 read-eval 宏中使用一些编译时技巧,我看不到这样做的方法。
    猜你喜欢
    • 2015-10-01
    • 2015-12-31
    • 2012-03-25
    • 2021-09-06
    • 2012-02-24
    • 1970-01-01
    • 2018-07-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多