title: Transactional DDL workflow for MySQL
body: <p>I was a little surprised to discover that DDL statements (<code>alter table</code>, <code>create index</code> etc) implicitly commit the current transaction in MySQL.  Coming from MS SQL Server, the ability to do database alterations in a transaction locally (that was then rolled back) was an important part of my workflow.  For continuous integration, the rollback was used if the migration hiccuped for any reason, so that at least we did not leave the database in a half-migrated state.</p>
  
  <p>How do people solve these two problems when using MySQL with migrations and continuous integration?</p>