It was time to bite the bullet and upgrade this site to Drupal 10, which went pretty smoothly, but of course, never start this sort of process without a backup.

Drupal has made huge advances with upgradability since Drupal 7. Going from Drupal 8 to Drupal 9 and now to Drupal 10 has been a progressively smoother process.

In the case of this site, it was simply updating composer.json and changing some lines in composer.json like this:

Before:

"drupal/core": "^9.5",
"drupal/dynamic_entity_reference": "^1.16",
"drupal/linkit": "^6.0",

After:
"drupal/core": "^10.0",
"drupal/dynamic_entity_reference": "^3.0",
"drupal/linkit": "^6.1",

Then run composer update and test locally with a backup. Always test locally with a backup first.

Everything tested out ok, so next was a push to GitHub, let the GitHub action build the docker container, and then deploy and run database updates.

Total downtime, less than a minute.