Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Database-independent migration library
Clojure
Failed to load latest commit information.
ragtime.core Release 0.5.1
ragtime.jdbc Release 0.5.1
.gitignore Add .nrepl-port to .gitignore
.travis.yml Fix .travis.yml file for new directory layout
README.md Release 0.5.1
project.clj Release 0.5.1

README.md

Ragtime

Build Status

Ragtime is a Clojure library for migrating structured data in a way that's database independent. It defines a common interface for expressing migrations, much like Ring defines a common interface for expressing web applications.

Installation

Add the following dependency to your project file:

[ragtime "0.5.1"]

Overview

Ragtime needs three pieces of data to work:

  1. A migratable data store
  2. An ordered sequence of migrations
  3. A strategy on how to deal with conflicts

A data store is an implementation of the DataStore protocol, and tells Ragtime how to record which migrations are applied to an arbitrary store of data, such as a database.

Since 0.5.0, migrations are implementations of the Migration protocol, which has three methods:

  • id - returns a unique ID for the migration
  • run-up! - applies the migration to a database
  • run-down! - rolls back the migration in a database

Ragtime comes with a way of loading SQL migrations from files, and applying them to a SQL database.

Documentation

License

Copyright © 2015 James Reeves

Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.

Something went wrong with that request. Please try again.