Aan de slag gaan
Ik begon door een Staging-omgeving van mijn website te creëren. Ik gebruik Cloudways om mijn Drupal website te hosten, dus ik hoefde slecht een paar keer te klikken in het control panel van Cloudways.
In de kloon van mijn website installeerde ik de Upgrade Status module door in te loggen op de command line (ik gebruik MobaXterm), naar de map te navigeren die het index.php-bestand van Drupal bevat, en het volgende in te voeren:
composer require drupal/upgrade_status
Ik logde in op mijn gekloonde Drupal website en controleerde de informatie in de Upgrade Status module (admin/reports/upgrade-status). De Upgrade Status module vertelt je wat je moet doen voordat je kunt upgraden.
Mijn Drupal-versie was al bijgewerkt naar de vereiste minimale core (9.4.x), maar ik moest ook de PHP op mijn Cloudways-server updaten naar 8.1, wat ik eenvoudig kon doen met behulp van het Cloudways-beheerpaneel.
Modules bijwerken
Vervolgens zocht ik naar modules die niet compatibel waren met Drupal 10. Gelukkig had ik de niet compatibele modules niet echt nodig, dus ik heb ze gewoon gedeïnstalleerd en de bestanden en mappen uit de modules/contrib map verwijderd door in te loggen via SCP (ik gebruik WinSCP).
Ik heb alle modules bijgewerkt naar de nieuwste versie door te klikken op het versienummer in het Upgrade Status overzicht en ze in een nieuw tabblad te openen. Hier heb ik het composer command om de module bij te werken gekopieerd en geplakt in de opdrachtregel en op deze manier alle modules bijgewerkt.
Thema's bijwerken
Daarna moest ik de thema's die verouderd waren in Drupal 10, zoals Bartik, Seven, Stable en Classy, deïnstalleren. Door naar 'admin/appearance' te navigeren, kon ik Bartik en Seven eenvoudig uitschakelen en deïnstalleren. Ik installeerde Claro en stelde dit in als het beheerthema.
Maar de Stable en Classy thema's verschenen niet in het overzicht van 'appearance/themes', dus ik kon ze niet deïnstalleren. Om ze zichtbaar te maken, moest ik inloggen met SCP (je kunt ook SFTP of FTP gebruiken) en de core/themes/classy.info.yml en core/themes/stable.info.yml aanpassen en hidden van true naar false zetten. Nadat ik de cache had geleegd, kon ik nu zowel de Classy als de Stable thema's deïnstalleren.
Mijn eigen aangepaste thema was afhankelijk van Classy, dus ik moest het bestand 'themes/my_theme/my_theme.info.yml' bijwerken om het basisthema van classy naar starterkit te wijzigen (dat de verouderde Classy en Stable thema's zal vervangen). Ik moest ook de versie van mijn thema wijzigen van 9^ naar 10^ om het compatibel te maken met Drupal 10.
Drupal bijwerken
Nu de Drupal upgrade. Ik volgde de instructies zoals hier gedetailleerd beschreven en veranderde de map- en bestandsrechten met WinSCP zoals aangegeven. Ik voerde het volgende composer command uit:
composer require 'drupal/core-recommended:^10' 'drupal/core-composer-scaffold:^10' 'drupal/core-project-message:^10' --update-with-dependencies --no-update
En daarna de daadwerkelijke upgrade-opdracht:
composer update
Om de database bij te werken, navigeerde ik naar 'mijnwebsite.nl/update.php'. Ik volgde de instructies en wachtte tot de database was bijgewerkt.
Problemen oplossen
Toen ik naar de startpagina ging, kreeg ik een White Screen Of Death (WSOD) met een niet erg behulpzame foutmelding. Ik kreeg ook dezelfde WSOD bij het navigeren naar elke pagina op mijn website, dus ik kon niet inloggen om een gedetailleerdere foutmelding in de logs te bekijken. Om een nuttigere foutmelding op het WSOD weer te geven, moest ik foutmeldingen inschakelen in mijn /sites/default/settings.php bestand door de volgende code toe te voegen aan het einde:
$config['system.logging']['error_level'] = 'verbose';
De foutmelding op het WSOD vertelde me nu iets over de node_type-plugin die niet bestond. Na wat zoeken vond ik deze oplossing van montogro. Omdat ik drush nodig had om de configuratiebestanden te exporteren, heb ik het geïnstalleerd via de command line door het volgende uit te voeren:
composer require drush/drush
Daarna voerde ik de volgende opdracht uit:
drush cex
Nu kon ik de bestanden in mijn sites/default/files/myconfiguration map kopiëren naar een map op mijn lokale harde schijf. Ik opende deze map met Visual Studio Code en zocht naar 'node_type'.
Net als montogro vond ik dit terug in de Asset Injector-module. Ik heb de Asset Injector-module gedeïnstalleerd met drush met de volgende opdracht:
drush pm:uninstall asset_injector
Na het legen van de cache met drush cr vernieuwde ik de startpagina van mijn website en voilà: het werkt! Ik heb de foutmeldingen code die ik aan mijn settings.php had toegevoegd verwijderd en gecontroleerd of alles correct werkte.
Nadat ik zeker wist dat de upgrade succesvol was, ging ik terug naar mijn Cloudways Control Panel en pushde ik de staging-bestanden en database naar de live-omgeving.
Hiermee was mij Drupal 9 bijgewerkt naar Drupal 10 voltooid. Hopelijk helpt dit je om de upgrade van 9 naar 10 uit te voeren. Laat me weten in de reacties als je opmerkingen of vragen hebt.