The move from Drupal 8 to 9 is easy, right?
…. Errr, sort of. I’ll explain.
Symfony and D8/D9
It is likely going to be much easier to move from Drupal 8 to 9 than from 7 to 8. In previous versions of Drupal like Drupal 7 and under, the migration process was a big effort. Developers within the Drupal community considered the move from D7 to D8 more of a replatforming than a migration.
Drupal 8 and 9 and 10 and 11 and so on are built on top of a Symfony framework. There’s a number of advantages to this, and some downsides, but let’s focus on the ease of upgrades. In the future, Drupal 8.9.x is going to be nearly identical to Drupal 9. Drupal 9.9.x will be similar to Drupal 10.
But do not underestimate the amount of work it’ll take to make the move to D9. Some developers at Agileana were recently looking at a Drupal 8 site, did an analysis, and assumed the move to D9 would take a day of work.
Now, developer estimates are often incorrect, there’s usually unforeseen problems with a site and requirements from product owners that an analysis won’t take into account. Once we looked deeper into the site, though, it became clear that this was a two-week migration process.
So, how does an estimate for a Drupal 8 to 9 migration go from one day to two weeks?
Technical Debt and Drupal Version Upgrades
Some Drupal 8 sites were able to move to Drupal 9 on the day that D9 was released. It can be that simple.
But just because the upgrade can be easy doesn’t mean that it will be. If a site has been accumulating technical debt, then that will need to be refactored.
And technical debt is basically corners cut that will need to be redone or fixed. For example, if a developer puts content in the theming layer, this slows down your site and causes headaches if a new design is implemented. This needs to be fixed.
Technical debt won’t usually show up in an analysis report that is primarily looking at modules and the functionality of a site. But it will likely affect the performance of the Drupal 9 site.
Server Settings and Configurations for Drupal 9
Another reason why a Drupal 9 upgrade could be time consuming is because of server settings and configurations. If PHP is out of date or MySQL is old – these will need to be updated.
Routine upgrades on a server can take anywhere from a few minutes to hours.
Here are the major upgrades to consider:
Database and Server Requirements for Drupal 9: MariaDB 10.3+ or MySQL/Percona 5.7.8+
Web Server Requirements for Drupal 9: Apache 2.4.7
PHP Requirements for Drupal 9: Drupal 9 dropped support for Symfony 7.0, 7.1, and 7.2 and new installs require PHP 7.3 or later. PHP 8.0 was released in November of 2020 and supports Drupal 9 and will support Drupal 10 when it is released.
Don’t get me wrong, the move to D9 from D8 will almost certainly be easier than moving a site from D7 to D8. That’s the power of Drupal’s dependency on Symfony.
But just because it’s easier doesn’t mean that you no longer have to refactor technical debt or update your servers.