How iterative upgrades work
Iterative upgrades rely on a system of build numbers. Each time a new set of DAL source code is generated, it is allocated a new build number. When a new database is created using this DAL it gets tagged with the build number. So in future we will know exactly which DAL build created the database, versioning both the DAL and database.
The upgrade method in the DAL knows how to upgrade from every build number to the next (from build 0 to build 1, from build 1 to build 2 etc...). So when the DALs upgrade method is run against a database it can simply check the databases build and run through the necessary upgrades to bring it up to the latest build.