title: Zero downtime (or near zero) db schema changes
body: <p>I was wondering how/if people have worked around db schema changes that would otherwise cause a production system to be down. It seems with additive changes that are constrained in some way (e.g. unique constraint) would be difficult to do b/c the app and the db must change at the same time otherwise errors will occur either in the data or in the application. </p>
  
  <p>I have thought about maybe switching to a slave db (using mysql replication) and running the schema changes on the master but then you would need to somehow capture the update queries applied to the slave that where not applied to the master and you would run the risk of not having a backup server.</p>
  
  <p>What techniques have people used to work around these problems?</p>
  
  <p>Thanks,
  manish</p>