That way you can create versions of your database. Your development
server mabey has version 10 of the DB while the production server only
has version 6.
Next part of the scenario is that you are posting the newest version
of the code to your production server. But wait. Something doesn't
work. Then you can quickly do back the command rake db:migrate
VERSION=6 to move back the database to the point it was.
That is only one scenario of why it's nice to have migration versions.
Each version of the database is handled by it's own file. For example
when you have an online store app and you are adding comments to the
products you would add the 010_add_comments.rb migration file. You
never change an active version. If your database is version 10 the
file you should be changing is version 11. In emergency while in
development mode you could rake it down a version and then change the
migration file and rake it up.