Het kiezen van de upgrade-aanpak
Overzicht
Bij de voorbereiding op de upgrade naar Drupal 8 is het de moeite waard om wat tijd te besteden aan het plannen van de aanpak. Hoewel de inhoud van je vorige Drupal-site waarschijnlijk zonder problemen kan worden gemigreerd, vereist de configuratie van je Drupal 8-site waarschijnlijk enkele handmatige stappen. Bijvoorbeeld, de Views-module heeft nog geen automatische upgrade in core, wat betekent dat je je views handmatig moet aanmaken op je Drupal 8-site. De meest geschikte aanpak moet per site worden overwogen.
Eenvoudige aanpak met handmatige stappen na de upgrade
Bij deze aanpak wordt de upgrade één keer uitgevoerd en worden de handmatige stappen (bijvoorbeeld het maken van views) uitgevoerd op de Drupal 8-site voordat deze live gaat.
Het wordt aanbevolen om eerst te oefenen met upgraden en de handmatige stappen zorgvuldig te volgen. Als je tevreden bent met je testomgeving, herhaal je dezelfde stappen en zet je de productieomgeving van Drupal 8 op met een schone installatie.
Deze aanpak kan worden toegepast met:
Incrementele upgrade met handmatige stappen
Afhankelijk van het aantal en de complexiteit van de handmatige stappen na de upgrade, kan het onmogelijk zijn om de oude site offline te houden tijdens dit proces. Als de oude site online blijft terwijl je de handmatige stappen uitvoert in Drupal 8, kunnen gebruikers nieuwe content toevoegen of bestaande content bewerken op de oude site.
Drupal 8 ondersteunt incrementele upgrades. Dit betekent dat migraties opnieuw kunnen worden uitgevoerd om nieuwe of gewijzigde content te migreren. Het wordt afgeraden om de configuratie van de oude bronwebsite te wijzigen tussen de initiële upgrade en de incrementele migratie.

Deze aanpak kan worden toegepast met:
Alleen content migreren naar STAGING- en PROD-omgevingen
Een van de krachtigste nieuwe concepten in Drupal 8 is het geavanceerde configuratiebeheersysteem, waarmee je de volledige configuratie van een site kunt exporteren en importeren tussen omgevingen. Een typische workflow is om een ontwikkelomgeving (DEV), een testomgeving (STAGING) en een productieomgeving (PROD) te hebben, waarbij PROD de live-site voor eindgebruikers is. In Drupal 8 kan alle configuratie worden geëxporteerd naar YAML-bestanden en geïmporteerd in een andere omgeving.
Als je werkt met aparte DEV-, STAGING- en PROD-omgevingen, ziet een mogelijke aanpak er als volgt uit (zie afbeelding hieronder). Het is belangrijk om te begrijpen dat Drupal-entiteiten kunnen worden geclassificeerd in:
- Content-entiteiten (gebruikers, nodes, taxonomietermen, ...)
- Configuratie-entiteiten (contenttypes, velden, views, alle configuratie-instellingen)

Het upgradeproces in de afbeelding hierboven:
1. De Drupal 8 DEV-omgeving wordt geüpgraded vanuit de bronsite.
2. De bronsite blijft online (er kan nog steeds content worden aangemaakt of gewijzigd). Ondertussen wordt de configuratie afgerond in de Drupal 8 DEV-omgeving.
3. Configuratie kan worden uitgerold van DEV naar STAGING via het configuratiebeheersysteem van Drupal 8. Meestal wordt hiervoor versiebeheer zoals Git gebruikt.
4. Zodra de STAGING-omgeving gereed is, kan de content opnieuw worden gemigreerd vanuit de bronsite naar STAGING voor de uiteindelijke acceptatietests. Zodra de acceptatietests slagen, wordt de Drupal 8 PROD-site uitgerold en wordt de content van de bronsite naar de Drupal 8 PROD-site gemigreerd.
Deze aanpak vereist upgraden met Drush. Er zijn meerdere variaties mogelijk van deze aanpak.
- Zie de Drush-upgradepagina voor informatie over het genereren van migraties.
- De upgrade naar Drupal 8 DEV (stap 1 in de afbeelding) kan worden uitgevoerd door alle migraties uit te voeren met
drush migrate-import --allof door de gewenste migraties één voor één uit te voeren metdrush migrate-import <migration name>. - De content-only upgrade (stap 4 in de afbeelding) kan worden uitgevoerd door alle contentmigraties uit te voeren met
drush migrate:import --tag=Contentof door gewenste migraties afzonderlijk uit te voeren metdrush migrate-import <migration name>. Je kunt ook een lijst van migraties specificeren in een manifestbestand.