Mongrations

Mongrations aims to be similar to ActiveRecord's data migrations, except instead of worrying about schema changes, offering a way to change data when necessary.

Example: You decide after a few weeks of running an application that you want to add timestamps, and want to display the created_at time for an application.

You could put a default timestamp into the model (and in this case that might be appropriate), but you might also just want to say, "everything needs to get a new timestamp that doesn't already have one, let's say when the US beat Canada in hockey in the Olympics."

Installation

If you're using Rails 2:

gem install mongrations

In your environment.rb:

config.gem "mongrations"

If you're using Rails 3/Bundler, just add:

gem "mongrations"

to your Gemfile.

In both cases, open your Rakefile, and add:

require 'mongrations/tasks'

Example

To generate a mongration, just do:

script/generate mongration whatever_you_want_your_mongration_to_be

To run it, do

rake mongo:mongrate

Other rake tasks added have been mongo:mongrate:redo, mongo:mongrate:up, mongo:mongrate:down, mongo:mongrate:rollback.

Dependencies

You need Mongo and MongoMapper for this to be of any use. Shoulda and Matchy are required to run the tests.

Credit

Original code is from Rails 2.3.5 and ActiveRecord 2.3.5, now adapted to work with MongoMapper

Original adaptation by terrbear.

Fixed to work with recent versions of MongoMapper and released as a gem by Chris Heald.

License

Released under the MIT license