2017-04-19 2 views
1

Ich versuche, eine Verbindung zu einer Datenbank auf einem Heroku-Dyno außerhalb von Heroku in Clojure herzustellen.Heroku, Clojure - Herstellen einer Verbindung mit der Datenbank außerhalb von Heroku

Vom Heroku führt es sagt, ich DATABASE_URL=$(heroku config:get DATABASE_URL -a my-app) lein repl und dann (System/getenv "DATABASE_URL") und sah tat eine Verbindung DATABASE_URL=$(heroku config:get DATABASE_URL -a your-app) your_process

Aus meiner Anwendung zu erstellen, dass die Datenbank-URL korrekt war.

Meine Frage ist, wie würde ich die DATABASE_URL aus der App einstellen. Also statt DATABASE_URL=$(heroku config:get DATABASE_URL -a my-app) lein repl zu tun, um die Verbindung zur Datenbank herzustellen, kann ich einfach lein repl oder lein run tun und es verbindet. Muss ich DATABASE_URL=$(heroku config:get DATABASE_URL -a my-app) in eine Config-Datei innerhalb meiner App setzen. Wenn ich es so gemacht habe, habe ich auch keinen Prozess. Ist das notwendig?

Jede Hilfe ist sehr

+0

sagst du, du willst überhaupt nicht env vars benutzen? oder hast du versucht 'Export DATABASE_URL =" $ (...) '? – codefinger

Antwort

1

Für lein repl den Code einzusehen, dass in user.clj laufen, wo sich diese Datei im Verzeichnis dev sein können, die in :source-paths in der project.clj-Datei enthalten werden müssen . Die Verwendung von Dev ist eine Konvention, die ich anscheinend übernommen habe (von Untangled). Der Gebrauch von user.clj wird jedoch in lein gebacken. Siehe Where should the file user.clj go?. Vielleicht möchtest du auch ein Entwicklerprofil haben. Ich weiß, dass ich hier ein bisschen vage bin, andere könnten es vielleicht besser machen - hier ist ein einfaches Projekt.clj, das für mich funktioniert: https://github.com/chrismurrph/Accounting/blob/master/project.clj.

lein run wird jedoch völlig anderen Code ausgeführt. Siehe http://www.flyingmachinestudios.com/programming/how-clojure-babies-are-made-lein-run/ (oder http://www.braveclojure.com/getting-started/) und beachten Sie, dass die -main, die ausgeführt wird, in Ihrer Datei project.clj angegeben werden muss - im verknüpften Text wird der Konfigurations-/Starup-Code mit dem Eintrag :main learn-a-language.important-phrases angegeben.

Verwandte Themen