Drupal 8 was one of the biggest releases in the platform’s history. Its release empowered the community to adopt more modern development technologies and tools. If you migrated a site from Drupal 6 or 7 to Drupal 8 you probably can attest that a considerable investment of time and resources was required for a successful migration. Luckily, migrating from Drupal 8 to 9 will likely be a walk in the park, in comparison.
Sponsoring a site migration is not an easy decision, but there are low-cost steps that you can take as a site owner today in order to prepare for effective migration tomorrow. In this article, we will help ensure that you’re ready for a seamless migration process and verify that your Drupal 7 or Drupal 8 site can smoothly transition into Drupal 9.
The waiting game is over
Since migration planning can be a project on its own, many organizations decided to take an approach of skipping the Drupal 8 version and moving from Drupal 7 right into Drupal 9. The decision to wait may have been the best course of action in previous release cycles for Drupal, but that is no longer the case with modern Drupal.
As the creator of Drupal, Dries Buytaert explained in his keynote speech at DrupalCon, a migration from Drupal 6 to 7 or from Drupal 7 to 8 can be explained as if you were riding a train on one track and then you need to move your train to a different track.
With the release of Drupal 8, the community worked on a different release model to eliminate the need to keep switching tracks. Instead, Drupal sites will be able to continue on the same track, making a few stops for updates. The key is actively maintaining your "train", rather than completely changing tracks.
If you migrate to Drupal 8 following best practices, your site will transition seamlessly over to Drupal 9, as Drupal 9 is built on top of the Drupal 8 codebase. Moreover, starting your migration earlier will allow for a longer grace period for transition, helping to improve quality and avoid decisions made under pressure.
How to evaluate if your site is ready
Let’s look at the situation at a different angle. Imagine that you are planning the migration of your Drupal 7 website and want to make sure that your new site will be built with Drupal 9 in mind. Or perhaps you already have a brand new Drupal 8 website and would like to be sure it is Drupal 9 ready. There are a series of steps that you can take to ensure it’s in the best shape possible.
Getting your Drupal 7 site migration-ready
1. Evaluate your inventory
Migration is a good time to clean up your site, and retire old content or files that you no longer need. Identify what content types you have and which of them can be retired or merged together. Check your inventory of modules and see if the modules have been ported over to the Drupal 8 space. While checking statuses, it is important to see if the module is well-maintained. With Drupal 8 being newer than Drupal 7, some modules may not have stable releases. Therefore, we recommend prioritizing an active issue queue on drupal.org and module usage statistics over its status as stable.
2. Evaluate your hosting solution
Make sure your hosting provider fulfills all of the requirements needed for Drupal 9. The fact that your hosting supports Drupal 7 doesn’t guarantee that it will support Drupal 8 or 9. If required, your Drupal vendor can help with the evaluation.
A hosting evaluation may also bring additional benefits and improvements for the web operations on the team. Most Drupal-specific hosting platforms provide automation and integration that reduces manual labor for developers and frees up their time for different business goals.
3. Plan for success
In the spirit of cost reduction, it might be tempting to lean towards the “lift and shift” solution, especially when it comes to design and functionality. Due to the vast difference between Drupal 7 and Drupal 8 codebases, the Drupal 7 theme cannot be reused. So if you have any need or desire for design updates, your migration is the moment to make them a reality.
It can be useful to gain an audience and stakeholder feedback. Conduct some user testing to gain insights about information architecture. Gather focus group feedback internally and externally and incorporate it into the migration process. It doesn’t have to be a big redesign project. Small changes can also make a big impact.
Want to dive in further? Explore our deep-dive guidance on your Drupal 7 to Drupal 8 migration (with dinosaurs!)
Getting your Drupal 8 site migration-ready
1. Run Drupal’s Status Report
The best strategy to ensure your site is Drupal 9 ready is to make sure your current Drupal 8 site is well maintained. First, check the status report page of your site by navigating to Admin > Reports > Status (/admin/reports/status) and check status and messages on this page.
Compare your current hardware setup (server, PHP version, etc.) with the system requirements for Drupal 9.
Make sure that you don’t see any outstanding database updates or unresolved errors. If needed, your Drupal vendor can help to resolve those.
Make sure your modules, theme, and Drupal core are up to date, as this will ease the transition of your codebase into Drupal 9.
2. Check that your code is Drupal 9 ready
Even if your modules are updated to their latest versions, it is not guaranteed that they don’t use deprecated code and are thus not ready for Drupal 9. You can use the contrib module Upgrade Rector to automatically check the code and fix suggestions while upgrading the sites. If you would like to find out more, consider reading the Drupal Rector Documentation.
3. Outline your plan “B”
There could be modules that are currently in use on your website that will not be getting an upgrade path. To see the module status, you can check if the module is actively maintained on the project page on drupal.org.
Check the number of sites that are currently reporting to use the module and also browse through the module’s issues queue to evaluate outstanding issues and the module’s Drupal 9 readiness.
If the module doesn’t have a good maintenance status, you will need to look for alternatives or work with your Drupal vendor to develop a custom solution.
4. Review any custom code
If your site has custom modules in place, this is the time to check them too. Upgrade Rector can help scan the custom code. It may also be a good idea to run code linters to ensure its syntax is compliant with Drupal and PHP coding standards. To learn more about linting and Drupal coding standards read this documentation.
Although the transition may seem intimidating, it doesn’t have to be. It is a more incremental process, especially for Drupal 8 websites looking to move to Drupal 9. The first release of Drupal 9 will only sunset deprecated code, and introduce no new features. Essentially, Drupal 9 will be Drupal 8.9, minus deprecated APIs.
Following the steps in this article, you can be prepared ahead of time for the Drupal 9 migration whether it’s a bigger lift from Drupal 7 or more lightweight transition from Drupal 8.