Database Migration With Spring: "One thing I've often found plaguing software updates during infrequent or less-than-trivial deploys is that invariably a small, but important schema change gets lost, run out of order, or skipped entirely; even when the individual deployment goes sound, ensuring the changes between development, qa, staging, and the final production environment stay in sync is bound to go wrong somewhere."