Patterns for deploying webapp updates with no downtime
emmett: For simple things like adding tables or adding columms, just do it. Add the column/table, then release new app code relying on it.For more complex things (changing the name of an existing column, or breaking a table into two parts, etc.) you need to write a compatibility mode into the application code. New writes go to the new column/table name, reads go to both places. Once that's released, migrate all the data as slowly as you like behind the scenes. When you're done, you can drop the old column or table.