public
Fork of sevenwire/db_branch
Description: Rails plugin to play nice with git branching and databases.
Homepage: http://sevenwire.com
Clone URL: git://github.com/agile/db_branch.git
name age message
file MIT-LICENSE Wed Dec 03 11:34:05 -0800 2008 Initial commit. [brandonarbini]
file README.markdown Loading commit data...
file Rakefile Wed Dec 03 11:34:05 -0800 2008 Initial commit. [brandonarbini]
file init.rb Wed Dec 03 12:37:23 -0800 2008 Initial infrastructure for loading a branch spe... [nate]
directory lib/
directory tasks/
directory test/ Wed Dec 03 11:34:05 -0800 2008 Initial commit. [brandonarbini]
README.markdown

DB_BRANCH

Rails plugin to play nice with git branching and databases. Loads a branch-specific database YAML file allowing you to migrate in branches without affecting the database of other branches.

More information:

Usage

First, you should have your db backed up. Just saying.

By default, it will run setup, config, and create_clone tasks so you'll end up with a running copy of your existing db for your branch.

rake db:branch

Update the db again? The clone task will drop and recreate the db and reload it from the original.

rake db:branch:clone

Just want a clean db without the data? create_empty will create the config and just load the db from the schema.

rake db:branch:create_empty

No longer need the branched db? purge will remove the branched databases and config.

rake db:branch:purge

Branch database config files are named database.branch.[branch_name].yml. The database names for the branch are renamed as [application]_[environment]_[branch] or [databasename]_[branch] if the originals where not named using a [application]_[environment] convention.

You can alter which branch name is used for the creation or purging of databases and config by setting the DB\_BRANCH variable.

rake db:branch DB_BRANCH=refactor

You can alter which database is used for the cloning or schema loading by setting the RAILS\_ENV variable.

rake db:branch:clone RAILS_ENV=development

But can it go to Eleven?

The only thing I can imagine making this any better is possibly finding a way of using gits hooks to automatically run rake db:branch when creating a new branch and rake db:branch:purge when deleting a branch. That'd be pretty hot.

Authors

  • Nate Sutton (nate@sevenwire.com)
  • Brandon Arbini (brandon@sevenwire.com)
  • Mike Vincent (mike@cryingwhilecoding.com)
  • Bjørn Arild Mæland (bjorn.maeland@gmail.com)
  • Chris Griego (cgriego@gmail.com)