Adobe Air Runtime
We've all been in this situation. You have developed a mobile app, or desktop application. It has been accepted to the Android Marketplace / Apple's App Store, or you have uploaded it onto your website or intranet for distribution. People have installed it and are using it.

It's time for version 2 and you make the inevitable changes to the database. You have to write code, in the model of your MVC pattern usually, that copes both with a upgrading the database from version 1 and creating a database from scratch for a user who is using your application for the first time at version 2.

And so the pattern continues, and the problem grows, for each version. In version 3 you have to write code that handles people upgrading from version 2 to version 3, version 1 to version 3 and people installing the app for the first time.

What a pain! Not anymore.