As SharePoint 2010 is a strong platform most of the old applications hosted on MOSS 2007 are getting migrated to SharePoint 2010 (Sooner it will be 2013).

Migration itself requires many considerations which includes but not limited to following items
  • Size of migration. (Content database and Custom databse if exists)
  • Migration approach (Tools based to Attch upgrade method)
  • Customizations done on old platform i.e MOSS 2007
  • Any third party tool used for customizations in old platform Ex Workflow products, Grids like Telerik etc
Each of above topics can be explained in deatils but we are discussing about the attach upgrade menthod here and issue which one can face after such upgrade.

If one takes the approach of content databse attach upgrade method for migration, its required that customizations developed on old plaform should be rebuilt using SharePoint 2010 API Ex: Webparts, Event Receiver etc. If in some cases we cant get the old WSP's or solutions for rebuilding then the features can throw error after upgrade. 
 This doesnt break the functionality of the iste in most of the cases where features missing are not part of core application functionality but the farm can be unstable due to such missing features. An error can be seen in 'Upgrade & Migration' link in Central Admin for such databases like 'Database is up to date, but some sites are not completely upgraded'and the upgrade status will be failed.

Whats Next:

An excellent utility is provided at codeplex for cleaning these unwanted\missing  features. It an be downloaded from here. 

Once the databse is clean with this utiltiy we can run the upgrade command again to complete the upgrade.

the powershell command for the same is 

        Upgrade-SPContentDatabase -Identity 'Conetnt Database name here'

 To summarize the steps for upgrade,

  1. Get database backup from MOSS 2007
  2. Before attaching the database clear all the unwanted solutions from solution store (This can be done on dev box).
  3. Attach the database backup to new environment. Note while attaching the database if has a site collection at root ('/'). it creates issue   while upgrade. Hence the other database which has this root site collection needs to be removed till this upgrade.

Or  we can upgrade the database in test web application created temporarily in development box.

  1. Run the utility (Feature admin) on the database for all the site collection in restored database.
  2. Delete the other site collections completely from this database using powershell except required site collection in case we are just migrating single site collection in     shared conetnt database. (Using Remove-SPSIte command) 
  3. Upgrade the database using powershell
  4. Take the backup of this new database and then restore it on prod.
  5. Deploy the customizations developed for this site collection

Once done review the databse status again from 'Upgrade & Migration ' it should show 'No action required'. the upgrade is successful.