We’ve been doing migrations for a long time, from all types of source databases into various content management systems and custom databases. Sometimes this process is pretty straightforward, and in the case of Drupal, the Migrate module can help a lot. Migrations can be extremely complicated though, necessitating custom scripts to handle certain data.
Migrations are important to get right, because not only is it about retaining all of the old site’s content, it’s also about retaining (or redirecting) all of the old URLs for SEO reasons.
It’s also important to have a robust QA system in place to test your migration and the old URLs on the new system, to ensure that nothing was missed and that everything was moved as expected.