-
Notifications
You must be signed in to change notification settings - Fork 84
Leiningen Integration
Jonas De Taeye edited this page Aug 19, 2015
·
2 revisions
Migrations can be run through Leiningen by taking advantage of aliases and the "run" task.
First, choose a namespace and add a function to load a configuration. In the example below, the user
namespace is used:
(ns user
(:require [ragtime.jdbc :as jdbc]
[ragtime.repl :as repl]))
(defn load-config []
{:datastore (jdbc/sql-database "jdbc:h2:file:example.h2")
:migrations (jdbc/load-resources "migrations")})
Then use the configuration to make zero-argument migrate
and rollback
functions:
(defn migrate []
(repl/migrate (load-config)))
(defn rollback []
(repl/rollback (load-config)))
These can be used at the REPL, and at the command line by placing the following Leiningen aliases in your project file:
:aliases {"migrate" ["run" "-m" "user/migrate"]
"rollback" ["run" "-m" "user/rollback"]}
Running lein migrate
will now migrate the database to the latest version, and lein rollback
will roll the database back one version.