public
Description: Ruby on Rails plugin to provide notification when you need to run migrations
Homepage: http://blog.hasmanythrough.com/2008/3/2/migration-concordance
Clone URL: git://github.com/joshsusser/migration_concordance.git
Search Repo:
name age message
folder MIT-LICENSE Sun Mar 02 12:37:29 -0800 2008 add code to repo [joshsusser]
folder README Sun Mar 02 14:31:58 -0800 2008 changed to using MD5 hash algorithm [joshsusser]
folder init.rb Sun Mar 02 12:37:29 -0800 2008 add code to repo [joshsusser]
folder install.rb Sun Mar 02 12:37:29 -0800 2008 add code to repo [joshsusser]
folder lib/ Thu Jul 10 09:13:13 -0700 2008 remove dependency on regreen gem (and thus test... [joshsusser]
folder uninstall.rb Sun Mar 02 12:37:29 -0800 2008 add code to repo [joshsusser]
README
MigrationConcordance
====================

by Josh Susser <josh@hasmanythrough.com>

project page: http://github.com/joshsusser/migration_concordance
project repo: git://github.com/joshsusser/migration_concordance.git

This plugin extends Rails migrations to provide notification when you need to run migrations. It
will detect both new migrations and modifications to previously run migrations. It is primarily of
use for team development, but is also useful when deploying a release to a new environment to
determine when migrations need to be run. This plugin does not run migrations automatically, but
will notify you whenever you need to run them.

To integrate with your application:

1) Add the following line to the end of your config/environment.rb file:

    puts ActiveRecord::Migrator.check_concordance

2) Add the file db/migration_snapshot.yml to your SCM ignore list (for example, the svn:ignore
property or .gitignore file). Putting the snapshot file under version control defeats the whole
purpose of this feature.

Any time you load your application's environment, it will indicate whether you need to run
migrations to bring your schema into concordance with the migration files. This notification will
happen when you run script/server, tests, the console, or any rake task that depends on the
environment. If you want to check on migration status, you can run "rake environment" to print the
notification.

Background
==========

MigrationConcordance works by taking a snapshot of the state of an appliation's migrations every
time you run "rake db:migrate". It creates a file in db/migration_snapshot.yml that holds a list
of all current migrations and their MD5 hashes. Therefore, if you migrate to a migration that is
not the latest (using rake db:migrate VERSION=<version>), you won't get any more notifications
even if you aren't on the latest version. It assumes you know what you are doing and won't keep
nagging you to migrate after you've migrated somewhere already.

Copyright (c) 2008 Josh Susser, released under the MIT license