hookup - Automate the bundle/migration tedium of Rails with Git hooks
Each time your current HEAD changes, hookup checks to see if your Gemfile, Gemfile.lock, or gem spec has changed. If so, it runs bundle check, and if that indicates any dependencies are unsatisfied, it runs bundle install. Each time your current HEAD changes, hookup checks to see if any migrations have been added, deleted, or modified. Deleted and modified migrations are given the rake db:migrate:down treatment, then rake db:migrate is invoked to bring everything else up to date.