therobot (owner)

Forks

Revisions

  • a9918c Mon Apr 27 15:06:32 -0700 2009
gist: 102770 Download_button fork
public
Public Clone URL: git://gist.github.com/102770.git
Ruby
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
before "deploy:rollback:revision", "deploy:rollback_database"
 
  desc "Rolls back database to migration level of the previously deployed release"
  task :rollback_database, :roles => :db, :only => { :primary => true } do
    if releases.length < 2
      abort "could not rollback the code because there is no prior release"
    else
      rake = fetch(:rake, "rake")
      rails_env = fetch(:rails_env, "production")
      migrate_env = fetch(:migrate_env, "")
      migrate_target = fetch(:migrate_target, :latest)
      run "cd #{current_path}; #{rake} RAILS_ENV=#{rails_env} #{migrate_env} db:migrate VERSION=`cd #{File.join(previous_release, 'db', 'migrate')} && ls -1 [0-9]*_*.rb | tail -1 | sed -e s/_.*$//`"
    end
  end