Guest User

Untitled

a guest
Mar 15th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.93 KB | None | 0 0
  1. + [usnpi.shell :as shell]
  2. + [clj-time.jdbc] ;; extends SQL protocols
  3. [environ.core :refer [env]]))
  4.  
  5. (def ^:private
  6. - default-url
  7. - "jdbc:postgresql://localhost:5678/usnpi?stringtype=unspecified&user=postgres&password=verysecret")
  8. + url-template
  9. + "jdbc:postgresql://%s:%s/%s?stringtype=unspecified&user=%s&password=%s")
  10. +
  11. +(def ^:private
  12. + db-keys [:db-host :db-port :db-database :db-user :db-password])
  13. +
  14. +(def ^:private
  15. + db-vals (mapv env db-keys))
  16. +
  17. +(def ^:private
  18. + pg-keys ["PGHOST" "PGPORT" "PGDATABASE" "PGUSER" "PGPASSWORD"])
  19. +
  20. +(def ^:private
  21. + pg-env (into {} (map vector pg-keys db-vals)))
  22. +
  23. +(def ^:private
  24. + db-url (apply format url-template db-vals))
  25.  
  26. (def ^:dynamic
  27. *db* {:dbtype "postgresql"
  28. - :connection-uri (or (env :database-url) default-url)})
  29. + :connection-uri db-url})
  30. +
  31. +(defn psql
  32. + "Executes a SQL file using psql utility."
  33. + [sql-file]
  34. + (shell/with-env pg-env
Add Comment
Please, Sign In to add comment