I still think RedGate is the way to go. It is true that it does not always catch all the dependencies, and you may need to hack on it a bit, but it gets you 95% of the way there, and would be a huge timesaver IMO.
Once you have the script generated, you can easily hack on the way error handling and transactions are done, the output is very well documented, so it is trivial to see what is going on.
One possibility would be, rather than modify each database in place, do this:
- create your a new version 8 database (
DB_NEW
) - migrate all of the data from the old database (
DB
) (you will need up to 7 different data migration scripts for this) - validate new database
- if success, rename
DB
toDB_OLD
and renameDB_NEW
toDB