如何在我的个人资料/项目配置的另一部分中使用profiles.clj中的值?

时间:2016-06-20 23:39:03

标签: clojure leiningen flyway environ

我正在使用Leiningen和environ创建一个clojure项目来保存uri来管理项目profiles.clj或环境变量中的数据库连接,我想尝试使用{ {3}}管理数据库迁移。

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/dev中的profiles.clj地图或我的:project/dev中的project.clj地图中添加如下条目。

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

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

1 个答案:

答案 0 :(得分:0)

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