Helaas moet u mislukte migraties handmatig opschonen voor MySQL. MySQL ondersteunt geen wijzigingen in de definitie van transactionele databases.
Rails 2.2 omvat transactiemigraties voor PostgreSQL. Rails 2.3 bevat transactiemigraties voor SQLite.
Dit helpt je op dit moment niet echt voor je probleem, maar als je de keuze hebt uit een database voor toekomstige projecten, raad ik aan om er een te gebruiken met ondersteuning voor transactionele DDL omdat het migraties veel aangenamer maakt.
Update - dit geldt nog steeds in 2017, op Rails 4.2.7 en MySQL 5.7, gerapporteerd door Alejandro Babio in een ander antwoord hier.