score-the-pigs/dev/user.clj

29 lines
781 B
Clojure

(ns user
(:require
[clojure.java.io :as io]
[clojure.tools.logging :as log]
[clojure.tools.namespace.repl :as tn-repl]
[com.score-the-pigs :as main :refer [system]]
[com.score-the-pigs.util.db :as db]
[honey.sql :as sql]
[honey.sql.helpers :refer [drop-table]]
[next.jdbc :as jdbc]))
(defn reset-db! []
(let [{:keys [example/ds]} @system
tables [:user :player]
drop-statements (map (fn [table] (sql/format (drop-table :if-exists table))) tables)]
(db/execute-all! ds drop-statements)
(jdbc/execute! ds [(slurp (io/resource "migrations.sql"))])))
(defn refresh []
(doseq [f (:biff/stop @system)]
(log/info "stopping:" (str f))
(f))
(tn-repl/refresh :after `main/start)
:done)
(comment
(reset-db!)
(refresh))