Migrating a Website to Drupal 9 from Drupal 7 or Drupal 8

The process and benefits to getting started on your website's Drupal 9 upgrade

August 17, 2020
Development

We work on a variety of platforms, including Drupal, and we’ve built a number of large Drupal sites over the years.  Nearly all of those were on Drupal 7, such as our work for the Duke Tisch Brain Tumor Center, but now the time has come where our existing clients and new clients are needing to start on the migration path to upgrade to Drupal 8, or preferably Drupal 9.

Drupal 7 originally had an end of life in November 2021, but that has been extended to November 2022.  That being said, the focus of Acquia’s future development will be on Drupal 9 and the migration process is rather laborious, so if you have the time and resources, it would be best to get started on your Drupal upgrade sooner rather than later.

For those of you who passed Kindergarten and are wondering why the previous paragraph skips the number 8, that’s a good question!  There is a Drupal 8, and we even did a large Drupal 7 to Drupal 8 upgrade and migration before Drupal 9 was ready, but now with Drupal 9 out and ready for primetime we recommend skipping Drupal 8 and going straight to Drupal 9.  To migrate from Drupal 7 to Drupal 8 or Drupal 9 are are similar amounts of work, and skipping straight to 9 gets you on the latest, stable version of Drupal.  Additionally (and importantly!), Drupal 8 is already scheduled to lose official support in November 2021 due to Symfony 3’s end of life.  

So, if you’ve lasted this long, we would recommend going straight to Drupal 9 and not worrying about Drupal 8, saving money, time, and effort.  If you upgraded early and are on Drupal 8, the good news is that the upgrade process to 9 won’t be nearly as substantial as it was from 7, and it should go pretty smoothly for you.  And in the event there’s some reason you need to go to 8, such as an internal mandate or you’re in the middle of the process already, your work will not be all for naught as many aspects of the future 8 to 9 upgrade will be easy.

Below is a quick overview of process and benefits of the Drupal 7 to Drupal 9 upgrade.

Drupal 7 to 9 Migration and Upgrade Process and Benefits

It’s important to know upfront that the process of a Drupal upgrade from Drupal 7 to Drupal 8 or 9 is substantial and requires essentially a rebuild of the site.  Existing Node infrastructure and content mapping can be used to help make the process more efficient, but the frontend code and underlying Drupal functionality/theming need to be reworked from scratch to align with new technologies in use and take advantage of new features.  

For your own internal budgeting and planning, I would consider this like a full site rebuild rather than “just” an upgrade.  If you had been considering a redesign, this migration is also an ideal time to do it since the frontend code of the site will be rewritten anyway.

Below is a high level overview of some things to keep in mind and what new elements to be aware of as you migrate.  It will be a big change, especially for teams who have only worked in the older Drupal platforms, but know that there are sites across the world having to go through similar transitions.  Find a good partner (let us know if you want to talk :) ), decide on whether you want to also redesign, build a plan with a thorough discovery phase, and get off to the races!

The theming, templating, and management has been reworked from scratch to be more modern and scalable.  Twig has replaced PHPTemplate as the default templating engine, Composer is now used to add modules rather than Drush, and many contributed modules have now been rolled into Drupal core.  These are all welcome changes to a more modern and maintainable platform, but require significant development.  The templating engine transition means frontend templates need to be rebuilt, meaning recoding of the frontend designs and theming them onto Drupal.  

This reason is exactly why it makes sense to couple the project with a redesign, if you’ve been thinking about it, because that frontend recoding will need to happen with new designs in the future.  Why go through (and pay for!) the frontend process again in a year when you redesign, when you can just pay for it once, now, and get the design you want.

Once the frontend build is complete, there are also new elements to be considered with the Drupal setup side of things.   Drupal 9 has brought a consolidation of modules and replacing some modules with new features available in Drupal 9.  So, during the initial phases of the project, it’ll make sense to do an audit of functionality, discovering where you can retool features to use Drupal core instead of relying on Drupal modules.  Incorporating a detailed discovery process upfront will help you unearth and plan around this from the start.

To get the content moved from your existing Drupal 7 database to the new Drupal 9 content database, we recommend building out a custom migration setup from the Migration module to move content.  If you’re using Paragraphs to manage content on pages within Drupal 7 or Drupal 8, you’ll also need to plan a migration of that content into new Drupal 9 fields to ensure that you can keep the easy control over your page layout.

If your site is larger and had various API integrations, which has always been a popular reason to use Drupal, you’ll also need to pay particularly close attention to moving them over in the migration.  Some may have relied on Modules that are no longer relevant or needed and can now be done with more native methods.

It’s a lot of work and encompasses a few different disciplines, including frontend and backend development. However, that work does not come without some serious benefits!  While it’s required to upgrade to stay on a supported and secure Drupal version, there are also a number of benefits that will help rationalize the transition.  Below is a brief overview of some high level benefits:

  • With the new templates being based on Symfony and Twig, it makes templates easier to maintain and develop, speeding up development and making it a less technically complex site to work on.
  • There will be less necessitated reliance on third-party modules, as new features are included in Core.  Less modules to maintain makes for a more speedy, secure, and maintainable site, eliminating possible points of failure or insecurity and bloat that can weigh a site down.
  • Better frontend site performance with the new templating setup.
  • The Drupal admin dashboard will be much quicker and performant, and also include better responsive UX for mobile and tablet editing.

Perhaps the biggest benefit is the path this upgrade represents for the future.  The roadmap for Drupal from 9 onward is to avoid a total rebuild and instead make incremental changes, meaning future upgrades should not necessitate a site rebuild, and be more similar to WordPress version upgrades that can be done quickly and reliably.

Conclusion

While the mandated upgrade timeline for Drupal 9 has been delayed, there are myriad benefits to be reaped by starting the process sooner rather than later.  Also, with it being such a substantial undertaking, you'll be saving yourself stress of running up against the clock.  And if you had been considering a redesign, getting started early will allow you to wrap that process into the upgrade, and you can essentially fund it by saving yourself the future money associated with a second frontend recode!

While it's a daunting undertaking, we feel it should also be a fun and empowering project, as you get the opportunity to take your website to the next level.  Let us know if you have any questions about the process and please feel free to get in touch if you need help with your Drupal upgrade!

Leave the first comment