Я создаю проект clojure, используя Leiningen с environ, чтобы сохранить uri для управления подключением к базе данных либо в проекты profiles.clj
или переменная среды, и я хочу попробовать использовать 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/dev
в моей profiles.clj
, либо на мою карту :project/dev
в моей project.clj
.
:flyway {:url ~(get-in profile-map [:profiles/dev :env :database-url])}
Кажется, я мог бы взять profiles.clj в свой проект.clj, извлечь там ключ и интерполировать его в карту проекта в соответствующем месте. Это лучший вариант? Есть ли более простой способ повторного использования такого значения?