The whole migration process is very much an iterative process of fine tuning until you’re satisfied with the end result. We call each iteration a ‘pass’ because we pass through the database with our migration script repeatedly, making slight adjustments as we gather more information.
Since there are so many variations between Drupal installations, we really only start to understand the scope of the work after running the first few exports. Our process starts off as follows:
- You let us know your requirements and give access to your site’s database;
- We run a test export and show you the result using a standard WordPress installation;
- You let us know how much more fine-tuning is needed.
So for example, we’d run through the first pass and ask you to take a look at the content. You let us know if you discover any issues, like missing posts or meta information (e.g. tags, authors and dates). We then adjust the migration script and run another pass. This repetition continues until you decide it’s good enough.
Why would there be missing information? The number and type of modules you’ve installed during the life of your Drupal site could have effected the structure of the database. This then affects how cleanly we can run each pass of the migration. For example, one client installed a module that ended up silently duplicating certain tags. We had to write custom code to remove duplicates and merge the associated posts. All of this took a great deal of time.
There’s rarely a ‘perfect’ migration due to the differences between the how Drupal and WordPress store the data for your site. Often, ‘good enough’ is a compromise between your budget and how close the WordPress version is compared to the original site. It’s not always possible to get an exact copy in WordPress, especially for more complex Drupal installations.
In fact, it’s usually too expensive to be overly specific about what gets migrated over because we’d write code and debug custom rules. We generally recommend bulk migration of only the aspects that would be tedious to do manually, then getting a human editor to ‘eyeball’ the content to make very specific changes using the WordPress user interface. It’s a boring job for the content editor but it tends to be cheaper and more accurate way of polishing off the migration.