rake db:migrate:redo VERSION=xxxxxxx, but that will run the down and then the up step. You could do this in conjunction with commenting out the down step temporarily.
I have a utility method that makes this very easy in development. I find that it helps me avoid creating too many migrations--normally I modify migrations until they have been deployed.
Adding my 2¢ to this because I ran into this same issue:
If you absolutely want to run a migration over again without creating a new one, you can do the following:
rails dbconsole -p
devdb=# delete from public.schema_migrations where version = '20150105181157';
And rails will "forget" that it ran the migration for 20150105181157. Now when you run db:migrate it will run it again.
This is almost always a bad idea though. The one instance where it could make sense is if you have a development branch and you haven't fleshed out your migration yet and want to add some things to it in development. But even then it's better to make your migration 2-way so you can properly rollback and retry repeatedly.
I use this technique in development when I change a migration a significant amount, and I don't want to migrate down a ton and lose any data in those along the way (especially when I'm importing legacy data that takes a long time that I don't want to have to re-import again).
This is 100% hackish and I would definitely not recommend doing this in production, but it will do the trick:
Move migration that you want to re-run out of its directory to a temporary place
Generate another migration with the same name
Copy/paste the original migration code into the newly generated migration file
Run the new migration
Delete the newly generated migration file
Edit your schema migrations to remove the most recent value