I do think that Fernando has a valid point. There is, for example,
already a rake task that can create all of your databases at once,
rake db:create:all. A
rake db:migrate:all might be a
useful thing to have. That being said, it would be pretty trivial to
code this yourself.
I have to disagree. It’s one thing to create the initial empty databases
and yet another to migrate them all. These should be kept separate just
as Jeff explained.
The normal workflow would be to (1) migrate your development database,
(2) prepare your test database (rake db:test:prepare), (3) run your
tests, and finally (4) migrate your production/staging database as part
of your deployment process/script.
You want your test database to begin in a known state, which is what
db:test:prepare gives you. You want to migrate your development database
forward for experimentation. And you only want to migrate your
production database after all tests pass and your ready to deploy a