Drupal 10 migráció Drupal 11-re

Default book

Előfeltételek

  • PHP 8.3+ a Drupal 11 miatt
  • Adatbázis: MySQL 8.0+ vagy MariaDB 10.6+ vagy PostgreSQL 16+
  • Drupal10-et frissíteni kell 10.3.0 vagy újabb változatra
  • Parancssori hozzáférés a konzolhoz (CLI), Composer és Drush telepítve legyen

Ha a Drupal megosztott tárhelyen van és nem férsz hozzá a CLI-hez, akkor

  • \\wsl$ telepítése a lokális Windows alá és ott hozd létre a fenti környezetet: Debian + Apache + PHP + MySQL stb...
  • Másold le az egész Drupal kódbázist a WSL$ alá. A settings/default/files tartalmából csak azt másold le, ami az oldalak megnyitásához szükséges, illetve amit a Drupal futás közben hozott létre...

Előkészületek

  • Telepíts néhány fontos modult a még a működő 10-es változatnál. Ezeket: Devel, Backup and Migrate, Upgrade Status 
    • A Drupal 10 cache-ét ürítsd ki, például a Devel modullal modullal, amit telepítesz a Drupal 10-re.
    • A Modulokhoz most már a z alábbi parancsot kell használni: composer require 'drupal/upgrade_status:^4.3'
    • Általában is használni kell a composer-t.
  • Biztonsági mentés
    • Készíts biztonsági mentést a fájlkörnyezetről FTP hozzáférés segítségével (pl WinSCP, Total Commander ) 
    • Készíts biztonsági mentést az adatbázisról a Backup and Migrate modullal az adatbázisról. Használhatod a phpMyAdmin-t is, ha van hozzáférésed a megosztott tárhelyhez. 
    • A phpMyAdmin-t majd az adatbázis visszatöltéséhez mindenképpen kell használnod. A visszatöltéshez majd használhatsz más adatbázis klienst is, például a HeidiSQL-t. 
  • Az elavult (deprecated) modulok eltávolítása. a Drupal 11-ben már nem használhatók az alábbi modulok: Actions UI, Book, Forum, Statistics, Tour, stb. A modulok listájában ezek deprecated  szöveggel vannak kijelölve. 
    • A Book modulból van contributed változat, amit ha telepítesz, akkor átveszi az eredeti Book modul szerepét és csak utána szabad a gyári Book modult eltávolítani. 
    • A modulokat ki kell venni a fájlrendszerből is. 
    • Ha van olyan contrib modul, ami nem kompatibilis a Drupal 11-gyel, akkor azokat is uninstallálás után ki kell törölni.
    • Ha szükség van rájuk, akkor a Drupal 11-essel kompatibilis változatokat kell telepíteni. 
    • Saját modul fejlesztésekor a legegyszerűbb lehetőség az, hogy a <modulneve>.info.yml fájlban átírod a core_version_requirement: ^10.3 || ^11-ot.

Kompatibilitás ellenőrzése

  • Ha korábban még nem telepítetted az Upgrade Status nevű modult, akkor tedd ezt meg most és az /admin/reports/upgrade-status oldalon nézd meg a kompatibilitási jelentést. 
  • Használhatjuk még az egyes contrib modulok elavult kódjainak felderítésére a Drupal Rector modult.

A frissítés menete

  • Fájl jogosultságok beállítása: chmod segítségével
    • chmod u+w web/sites/default
      chmod u+w web/sites/default/*settings.php
      chmod u+w web/sites/default/*services.yml
  • Drush frissítése. Belépsz a konzolon abba a könyvtárba, ahol a Drupal van és futtatod az alábbi parancsot (telepíted a Drush-t): composer require drush/drush --no-update
    • A drush telepítése után előfordulhat, hogy a drush-t az alábbi módon kell futtatni: 
      vendor/drush/drush/drush <paraméterek>
  • Frissítsed a core verzióját: composer require drupal/core-recommended:^11.0
  • Futtasd a composer update parancsot.

Adatbázis frissítése

  • Konzolban futtasd a drush updatedb paranccsal az adatbázis frissítését.
  • Ürítsd ki a cache-eket. drush cr

Fájl jogosultságok visszaállítása

  • 755 és 644 jogosultságokat kell visszaállítani.

Konfiguráció exportálása és tesztelése

  • Ha egyes modulok hibát jeleznek, akkor érdemes a legújabb contrib modul verziókat feltenni (D11 kompatibilis). Ilyen például a menu_per_role modul.
  • a régi témát úgy lehet kompatibilissé tenni, hogy a <témaneve>.info.yml fájlban átírjuk a kompatibilitási jelző. Ugyanez igaz az esetlege alap témákra is pl. bootstrap_barrio.
  • Ellenőrizd a weboldal működését minden tekintetben. Ha már semmilyen aloldalon nincsenek hibák, akkor az Upgrade Status modult lehet uninstallálni.
  • Ha a lokális teszt változat jól működik, akkor a Backup and Migration modullal (vagy a phpMyAdminnal vagy a HeidiSQL-lel) exportáld ki az adatbázist a teszt környezetből.

Az éles felület visszaállítása

  • Ha minden teszt hibátlanul lefutott, akkor az éles felületen az adatbázis táblákat töröld ki a phpMyAdminnal és importáld be a frissített és exportált adatbázis tábláit az éles adatbázisba.
  • A fájlrendszerből a core/*.* és a vendor/*.* és a modul/*.* könyvtárból pedig a korábban kitörölt vagy frissített modulokat töröld ki.
  • A helyi tesztváltozat minden fájlját másold vissza az éles tárhelyre. Ha a settings/default/ könyvtárban nem volt változás, akkor azt nem kell. Ez több óra lehet.
  • Minden contrib modult érdemes 

Hibák javítása

  • Futtasd az új változatot. Ha valamit eltoltál, akkor érdemes a teszt változaton kísérletezni és csak utána elvégezni az éles felületen. Ha az éles változaton nincsen konzolod, akkor csak ez a lehetőség van.
  • Tipikus hibák:
    • settings.php-ban valamit elállítottál.
    • Adatbázis hozzáférés a teszt oldalon más usernévvel / jelszóval megy, mint az éles felületen.