A Comprehensive Guide to Drupal Migration Resources
Current stats on the high percentage of Drupal websites that are still on version 7, with no apparent migration plan in sight, are sparking concern and curiosity throughout the Drupal sphere. What exactly is standing in the way of decisions to shed this outdated version and start reaping the benefits of better security and a far superior CMS?
The Drupal Association pandemic-inspired decision to move the Drupal 7 end-of-life date forward by one year to November 2022, may have derailed migration timelines from their previous top-of-mind status. We believe though, that the big reason for the migration delays, is a track record for complicated and cumbersome (and often, costly) migration processes. Drupal Community insiders are aware of this reputation, and have made great strides in reversing it with new modules, tools, systems, and accelerated project planning. The result is a new era for streamlined Drupal 7 to 9 migrations with minimal snags.
Here at Promet Source, we’ve stepped up as a key player in this process. We've also taken a big picture overview of all the work that’s going on to fast-track Drupal migrations. In doing so, we’ve assembled a comprehensive guide to information, insights, expert opinions, modules, tools, systems and more.
Let’s start with our top picks for insights and expertise.
Upgrading to Drupal 9 Using the Migrate API
This 30-minute recording from a DrupalCon North America 2021 presentation provides straightforward and solid information concerning a Drupal 9 migration path, leveraging the Drupal Migrate API. The presenters also cover recommended tools to facilitate a Drupal 9 migration, pitfalls, and essential perspectives. This presentation is chock full of great information and I highly recommend it.
Tools to get your site ready for Drupal 9 & 10
When you are ready to get into the actual weeds of a Drupal 9 migration, this presentation from DrupalCon North America 2021 can serve as an excellent resource with recommendations concerning the right tools, along with step-by-step explanations of when and how to put them to work.
How to Optimize a Drupal 7 to Drupal 9 Migration
There’s much more to a Drupal migration than simply following the right steps. A Drupal 7 to Drupal 9 migration represents an excellent opportunity to rethink and press the reset button on your organization’s entire web experience. This recent perspective sets forth eight considerations for reaping the most benefit from a Drupal migration.
What? So Drupal 8 Support Ends Before Drupal 7 Support?
In June of 2020, during the same week as the long-anticipated arrival of Drupal 9, I wrote a blog concerning the essential steps involved in a Drupal 8 to 9 migration. There’s a slight irony, in the fact that Drupal Community support for Drupal 8 will stop cold on November 28, 2021, without the option of extended commercial support, but Drupal 7 support will remain intact through November 2022, with the option of extended commercial support. This disparity is due to the Drupal 8 Symfony dependency, which has an end-of-life date of November 2021.
Drupal 9 Migration: Top Questions and Expert Insights
Recognizing that there are more than a few facets to Drupal migrations, Promet Source tapped the brainpower of some of our top devs and solutions architects for insights and observations concerning how to make the most of migration-related challenges and opportunities. Here’s what they had to say.
Migrating From Drupal 7 to Drupal 9? Acquia has your back
Acquia has developed a Drupal 7 to Drupal 9 Migrate Accelerate tool designed to fast track the migration process. This blog post from the Acquia site covers some of the capabilities of that tool along with links to other helpful Drupal migration resources.
Migration From Drupal 7 to Drupal 8 or Drupal 9
For the visual and audio learners among us, this online tutorial from Drupal expert Kantesh Hotchandani, an India-based Sr. PHP Drupal Developer, provides a step-by-step, on-screen tutorial of some of the key steps in involved in the Drupal 9 migration process.
How to Plan Your Drupal 7 Migration
An overarching theme from all of the Drupal 9 migration literature is this: successful migrations are built upon thorough assessments of the existing site and thoughtful planning. This step-by-step E offers a helpful strategy for doing just that.
As a service to the Drupal Community, we've set out to present a comprehensive overview of Drupal migration resources. If we've missed anything, please add it to the comments section below!
Due to Symphony 3 and 4 dependencies, EOL dates for Symphony 3 and 4 will mean a forced EOL on Nov. 28, 2021 for Drupal 8 and a forced EOL in Q4 2023 for Drupal 9. Drupal 7 sites, on the other hand, will have the option of extended paid commercial support.
Drupal 7 to 9 migrations are taking up most of the oxygen these days from conversations concerning Drupal 9 migrations. Fact is, Drupal 8 end-of-life is scheduled for four months from now -- with no option for extended commercial support. Even though, as many have pointed out, Drupal 8 to 9 is more accurately called an upgrade than a migration, Drupal 8 site owners face a critical imperative for upgrading ASAP to Drupal 9. This template can serve as a helpful tool in doing so.
Sometimes, a single oversight that could have been easily addressed at the start of a project can set a migration off course and spark undue setbacks. This Drupal migration planning checklist provides eight essential pointers that can set your migration up for success right from the start.
Pre-Migration Intelligence Gathering
The Upgrade Status module in its Drupal 7 version will check the list of projects your have installed and show their availability for Drupal 8/9
The Drupal Module Upgrader is a command line script that scans the source of a Drupal 7 module, flags any code that requires updating to Drupal 8/9, points off to any relevant API change notices, and (where possible) will actually attempt to convert the Drupal 7 code automatically to the Drupal 8/9 version.
With the arrival of Drupal 8, Migrate module has moved into Drupal Core. However there are a number of contributed modules that are helpful for migrations and are used in most, if not all, projects here at Promet Source.
Must-have Migration Modules
The Migrate Plus module provides a swiss army knife of useful extensions and plugins. Migrate Plus allows the grouping of migrations, which is often handy if there are multiple types of migrations in a project.
Additionally, Migrate Plus provides two example modules which are especially useful for learning how migrations work first hand.
See the full list of Process, Source, Destination and additional plugin types on the project page: https://www.drupal.org/project/migrate_plus
Migrate Tools is essential for most projects as it provides Drush commands and a user interface to run, roll back, and perfect migrations.
General Use Migration Modules
Made by the awesome people at CivicActions, Migration Tools is a bevvy of useful plugins to help with the thorniest of migrations -- especially those from HTML sources. It is perhaps worth noting that the maintainer, dkucharm (https://www.drupal.org/user/3072643), is not only a great developer but also a fantastic musician!
While Migrate Plus provides the ability to group migrations, Migrate Manifest takes this to the next level by allowing developers to create a manifest file to run migrations. This can be very useful for large projects and complex migration workflows. https://www.drupal.org/project/migrate_manifest
Provides Drush support for Drupal 6 or 7 to 9 upgrades. https://www.drupal.org/project/migrate_upgrade
Provides a recursive directory scanner for migrations files, which helps to organize migrations into sub-directories.
This is useful when you need to migrate files in the same migration as other data. It is especially relevant when migrating from sources where relevant entity data is offered in a single row such as CSVs or some APIs.
Source-specific Migration Modules
- Migrate Silverstripe https://www.drupal.org/project/migrate_silverstripe
- Wordpress Migrate https://www.drupal.org/project/wordpress_migrate
Entity-specific Migration Modules
- Bean Migrate https://www.drupal.org/project/bean_migrate
- Field Collection to Paragraphs https://www.drupal.org/project/field_collection_to_paragraphs
- HTML to Paragrahs https://www.drupal.org/project/migrate_html_to_paragraphs
- Location Migration https://www.drupal.org/project/location_migration
- Migrate Media Handler https://www.drupal.org/project/migrate_media_handler
- Migrate URL2Link https://www.drupal.org/project/migrate_url2link
- Media Migration https://www.drupal.org/project/media_migration
- Structured Terms Migration https://www.drupal.org/project/structured_terms_migration
- Webform Migrate https://www.drupal.org/project/webform_migrate
Process and Source Plugins
- lowerCamelCase Migrate Process Plugin https://www.drupal.org/project/migrate_process_lowercamelcase
- Migrate Process Array https://www.drupal.org/project/migrate_process_array
- Migrate Process Regex https://www.drupal.org/project/migrate_process_regex
- Migrate Parse Textile https://www.drupal.org/project/migrate_parse_textile
- Migrate Source Directory https://www.drupal.org/project/migrate_source_directory
- Migrate Directory https://www.drupal.org/project/migrate_directory
- Migrate Source HTML https://www.drupal.org/project/migrate_source_html
- Migrate Source JSON:API https://www.drupal.org/project/migrate_source_jsonapi
- Migrate Source Multiple CSVs https://www.drupal.org/project/migrate_source_multiple_csv
- Migrate Source RSS Scraper https://www.drupal.org/project/migrate_source_rss_scraper
- Migrate File Mime Types and Extensions https://www.drupal.org/project/migrate_file_mime_extensions
- Smart SQL ID Map https://www.drupal.org/project/smart_sql_idmap
- Migrate Generator https://www.drupal.org/project/migrate_generator
- Migrate Orphans Purger https://www.drupal.org/project/migrate_orphans
- Migrate Override https://www.drupal.org/project/migrate_override
- Migrate Status https://www.drupal.org/project/migrate_status
- Entity Staging https://www.drupal.org/project/entity_staging
- Entity Migrate Export https://www.drupal.org/project/eme
- Image Style Generate https://www.drupal.org/project/image_style_generate
At Promet Source we tend to approach every engagement with a deep dive into the details and a determination to understand big-picture perspectives, as well as all of the minutiae that also matters a lot. Looking for insight or consultative support on any aspect of a Drupal migration? Let us know how we can help!