Thanks for stopping by. This is my third post in a series detailing my experience with updating our 24-site multisite system from Drupal 8 to Drupal 9 this week in our staging environment. I hope you come away with a little insight on how to handle this in your own projects or on website upgrades in general.
The Drupal 8/9 transition has consisted of two main parts: the codebase upgrade and the database upgrade.
The codebase upgrade was challenging when I tried to migrate directly from Drupal 8 to Drupal 9 due to version conflicts with Composer. After hitting these roadblocks, I ended up switching my approach and starting from with a Drupal 9.2.3 Vanilla site, re-adding the modules and themes. This was the way to go, as most of the Composer updates were smooth after that with minimal dependency issues.
Since then, our work has been primarily focused on making database updates to each of the 24 sites.
One surprise from this upgrade was how many updates were needed to our site's theme. In addition to changing the versioning, there were several places where we had to change the syntax in our Drupal API calls. Fortunately, Acquia Cloud, our server provider, has a nice log system that allowed me to check into the errors resulting in the white screens I encountered during our database updates.
Another interesting find was that layout builder was automatically enabled for our homepages, which caused our homepage text to be hidden. Figuring out how to turn it off was tricky at first, but I ultimately found a way to do it with two clicks and a save.
One question I have yet to contend with is how best to handle local development. Now that Acquia Dev Desktop has reached EOL, I am trying out Lando. The caveat is that setting up multisites with Lando looks complex. I'm going to give it a try with just one site to see how it goes.
I have been focusing on database updates over the past 24 hours and they have gone fairly smooth. Every so often there is a module I need to add or a theme issue I need to resolve, but for the most part everything works and I can plot out our roadmap - as opposed to when I was starting, where I couldn't see two feet in front of me. As a result, I am now able to coordinate with our program sites around the globe to make sure we can handle any content updates that occur between now and deployment.
We are just about nearing the finish line, and this has been quite a learning curve. I hope my experience is informative for other Drupal devs looking to upgrade their sites from 8 to 9.