Migration is judged on what survives, not on what arrives. Content is the easy half. The half that gets skipped is the history, the relationships between records, and the URLs the outside world has already bookmarked and linked to.
What we plan for
- Content, media, users and relationships mapped before anything is moved, so the shape of the new system is a decision rather than an accident.
- Redirects from every old URL, because a migration that returns 404s has traded one problem for a worse one.
- Repeatable migration runs, so the switchover is rehearsed rather than attempted once on the night.
- Verification by counting - records in, records out, differences explained - not by opening a few pages and calling it done.
Work like this
- Apex Embroidery Designs - rebuilt on Drupal 9 with a migration of 20 million records.
- Christian Music Archive - 2,600 artists and 13,700 albums moved from Drupal 6 to Drupal 7, with e-commerce added.