Before we move on, it would be useful to say a few words explaining what Code-First Migrations actually are and the advantages we gain by using them.
Whenever we're developing an application and defining a data model, we can be sure that it will change a number of times for many good reasons: new requirements from the product owner, optimization processes, consolidation phases, and so on. A bunch of properties will be added, deleted, or have their types changed. Chances are, sooner or later, we'll be adding new entities as well and/or changing their relation pattern according to our ever-changing needs.
Each time we do something like that, we'll also put our Data Model out of sync with its underlying, Code-First generated database. This won't be a problem when we're debugging our app within a development environment because that scenario usually allows us to recreate the database from scratch whenever the project changes.
Upon deploying...