What are some good reasons for me to use Migrations versus SQL scripts?
1) SQL scripts can't massage the existing data using domain logic to
jive with the new schema.
2) SQL scripts don't usually have easy ways to back out of a change
3) SQL scripts don't maintain a schema version automatically, so teams
have to manually deal with when to run what and how.
4) SQL scripts are bound to 1 database, so they're not portable. And
they make it easy to introduce proprietary constructs, so the entire
schema is rendered unportable.
5) SQL scripts are written in SQL, not Ruby.
David Heinemeier Hansson