How Drupal 7 Migrations to Drupal 9 work with Acquia

As Acquia, we're passionate about Drupal -  a community driven, open source Content Management System. In fact, we're so passionate, we have a dedicated team who drive a number of open source contribution initiatives in the community.

Over the past 2 years, one of those initiatives has been vetting and contributing migration paths from Drupal 7 to the (not so new anymore) architecture of Drupal 9 across the community of contributed modules. Before I talk more about what we've done here - I want to explain a little more about why we chose to invest in this type of contribution.

Drupal 7 still represents 50% of Drupal sites today

Drupal 7 was released in 2011, and although its 12 years old now, it still represents 50% of the Drupal market based on Drupal.org core usage statistics (at July, 2022).

Image
Drupal core usage at July 18, 2022
Drupal.org core usage statistics as of July 18, 2022

Although Drupal 7 was massively successful and gained great adoption, it inherited a fundamental flaw of its predecessors: no major upgrade paths. This was addressed eventually in Drupal 8 and since, all major and minor versions of Drupal now have upgrade paths. But for Drupal 7 users, a migration path is still required.

Migrating away from a monolith is a lot of work

2011-2018 was a time where:

  • your website was often your sole digital asset
  • backend performance was favoured over frontend capabilities

As a result, many businesses opted to integrate heavily into their Drupal website and the Drupal community produced thousands of integration and site building modules to do the job. This monolith can make a lot of sense as you could hire a team of Drupal developers who could virtually do everything in your digital experience.

And as is the case in technology, things have changed since. Mobile devices are first-class citizens, many more businesses are SaaS powered and "embeddable" in the front end. Javascript and browser technology is much better that is was and now viable for many businesses to adopt.

Drupal too has matured and changed as well. Its natively "headless" and able to expose its structured data in open formats understood by modern frontend frameworks. Its added many new core features around content management, workflow, media, configuration management and translation making it a great candidate to migrate into.

Save the data, preserve the function

So today we see that around 50% of the Drupal users have a Drupal 7 monolith they need to get off before the End of Life, currently scheduled for January 2025 or even before the end of PHP 7.4 . But as we've discussed, these users have a lot invested in Drupal 7. They have a lot of data they need to retain alongside the function that makes that data useful (e.g. a URL to a youtube video (data) needs to be accompanied with a video player (function)).

This is where our Drupal Acceleration Team (DAT) comes in. Our team contributed towards the Drupal 7 to 8 migration system in Drupal core (which still works in Drupal 9 and will continue to work in Drupal 10 (to be released in December 2022)). Since then, we've been working with the wider community contributed projects to vet and produce migration paths for the most used Drupal modules.

Today we have 2,400+ Drupal 7 modules with Drupal 9 compatible releases that help preserve the function that was made available in Drupal 7. To date, the Drupal Acceleration Team has vetted 22% of those D9 ready modules to ensure their migration path from Drupal 7 also preserves the data. From our own platform data, we can see a Pareto principle in action - the 22% of modules we've vetted average an 83% coverage of a Drupal 7 site. Said another way - when upgrading from Drupal 7 to Drupal 9, chances are,  around 83% of your open source modules will have a vetted migration path by Acquia (irrespective of whether you're a customer or not).

How much of YOUR migration path is ready?

100% of our community migration work is contributed to the community for their maintainers to review and commit into their projects. But unfortunately, that doesn't solve all the problems:

  • How do you know which modules have a working migration path? Which ones did Acquia contribute to?
  • Which projects have uncommitted migration paths and which patches should you use?
  • How do I quickly identify where to focus migration efforts to maximise retention of the data and function I want (opposed to what is just there)?

This is where a Drupal 9 Flight Path assessment can help. Acquia, or a qualified partner, can audit your Drupal 7 site for free and provide you with a Flight Path assessment report which will help your migration team with their planning and analysis.

  • It helps you understand how much of your site data and function can be migrated with existing, vetted, migration paths and expands on areas where greater investigation, planning or resources may need to be placed.
  • It shares migration notes from our DAT team on specific modules they've vetted.
  • It breaks down data migration coverage across various entity types, bundles and even field level coverage.
  • It takes stock of all your Views and the modules that power them (because they'll need to be rebuilt and cannot be migrated).
Image
Summary view of findings from a Flight Path assessment
Summary view of findings from a Flight Path assessment
Image
Doughnut graph breakdown of module count by migration strategy
Doughnut graph breakdown of module count by migration strategy

DevOps for Drupal 7 migrations

A migration is ultimately a short term project you want to minimize infrastructure investment on. The nature of migrations though, they often need regular data refreshing from production and need resources of their own to run the migration automation. Thats why we built Acquia Migrate: Accelerate (AMA) and made it free on Acquia Cloud. Using our database of vetted migrations, we can pre-build your Drupal 9 codebase from your Drupal 7 production site and deploy it onto its own infrastructure, built for Drupal 7 to 9 migrations. The environment comes with buttons to refresh your data, a UI and CLI tools inside Drupal to help run your migrations and once your migration is completed, you can then promote it to production with a click of another button. Easy.

Image
Creating Migration Environment on Acquia Cloud

Making migrations easier, faster & cost less

Through our open source commitment to Drupal, we're making migrations away from Drupal 7 easier and faster. We're building developer tools to help with migration planning, analysis and execution. For our customers, we're even able to deliver DevOps infrastructure and D9 codebase building automation at no additional cost!

Need more time on PHP 7.4?

For Drupal 7 customers, the PHP 7.4 EOL in November 2022 is a real threat. Although Drupal 7 core has PHP 8.0 compatibility support, much of the ageing Drupal 7 community modules and even your custom modules may not have PHP 8 support. Acquia is offering PHP 7.4 LTS extending it beyond the current EOL. For Drupal 7 customers, this provides you with more time to plan and execute your migration to Drupal 9. Its another way we're helping Drupal 7 customers in their last migrate-to-upgrade strategy ever.