public
Description: Ruby on Rails
Homepage: http://rubyonrails.org
Clone URL: git://github.com/rails/rails.git
make db:migrate:redo rake task accept an optional VERSION to target that 
specific migration to redo

Signed-off-by: Michael Koziarski <michael@koziarski.com>
Philip Hallstrom (author)
Tue Sep 16 10:38:13 -0700 2008
NZKoz (committer)
Wed Sep 17 02:14:21 -0700 2008
commit  c47525a58397851895b25f7c1bba06b30b0f6b5d
tree    8ffbb9993a267df3f7931dc9c68d764bbd694146
parent  4db7e8de1160de6c813a33266fa415849e25fba6
...
113
114
115
116
117
 
 
 
 
 
 
 
 
 
 
118
119
120
...
113
114
115
 
 
116
117
118
119
120
121
122
123
124
125
126
127
128
0
@@ -113,8 +113,16 @@ namespace :db do
0
   end
0
 
0
   namespace :migrate do
0
-    desc  'Rollbacks the database one migration and re migrate up. If you want to rollback more than one step, define STEP=x'
0
-    task :redo => [ 'db:rollback', 'db:migrate' ]
0
+    desc  'Rollbacks the database one migration and re migrate up. If you want to rollback more than one step, define STEP=x. Target specific version with VERSION=x.'
0
+    task :redo => :environment do
0
+      if ENV["VERSION"]
0
+        Rake::Task["db:migrate:down"].invoke
0
+        Rake::Task["db:migrate:up"].invoke
0
+      else
0
+        Rake::Task["db:rollback"].invoke
0
+        Rake::Task["db:migrate"].invoke
0
+      end
0
+    end
0
 
0
     desc 'Resets your database using your migrations for the current environment'
0
     task :reset => ["db:drop", "db:create", "db:migrate"]

Comments

artofmission Wed Sep 17 06:52:21 -0700 2008

Yay!