Drupal 7-ről Drupal 10-re migrálás: A teljes útmutató

A webfejlesztés világában a technológia sosem áll meg, és a Drupal sem kivétel. Ha még mindig egy Drupal 7 alapú weboldalt üzemeltetsz, akkor valószínűleg már érzed az idő sürgetését. Az elavult szoftverek biztonsági kockázatot és teljesítménybeli hátrányokat rejtenek magukban. Itt az ideje, hogy elhagyd a múltat, és a jövő felé fordulj: a Drupal 10 felé. Ez az útmutató végigvezet a migráció teljes folyamatán, hogy zökkenőmentesen és sikeresen vihesd át weboldaladat az új platformra.

Miért érdemes migrálni? A Drupal 7 végének közeledtével

A Drupal 7 End-of-Life (EOL) dátumát többször is kitolták, de immár ténylegesen közeleg a pillanat, amikor a hivatalos támogatás véglegesen megszűnik. Ez azt jelenti, hogy a biztonsági javítások, hibajavítások és új funkciók fejlesztése leáll. Egy nem támogatott platformon üzemelő weboldal kiszolgáltatottá válik a támadásoknak, és hosszú távon fenntarthatatlanná válik. De nem csak a biztonság a fő ok! A Drupal 10 egy teljesen modern, robusztus és jövőálló platform, amely számos előnnyel jár:

  • Fokozott Biztonság: A Drupal 10 a legújabb biztonsági szabványoknak és gyakorlatoknak megfelelően épült, minimalizálva a sebezhetőségeket.
  • Magasabb Teljesítmény: Modern technológiák (Symfony, Twig) és optimalizált kód alapjaival a Drupal 10 gyorsabb betöltési időt és jobb felhasználói élményt biztosít.
  • Fejlettebb Felhasználói Élmény: Az adminisztrációs felület intuitívabb és modernizált, a tartalomkezelés egyszerűbbé válik.
  • Új Funkciók és Fejlesztések: Beépített webes szolgáltatások (API-k), fejlettebb média kezelés, Composer alapú függőségkezelés, és még sok más.
  • Jobb Fejlesztői Élmény: A modern objektumorientált (OOP) architektúra és a Twig sablonrendszer megkönnyíti a fejlesztést és a karbantartást.
  • Jövőálló Megoldás: A Drupal 10 aktívan támogatott, folyamatosan fejlődik, így hosszú távon biztosítja weboldalad relevanciáját.

Tervezés a kulcs: Mielőtt belevágnál

A migrálás nem egyszerű frissítés; inkább egy új weboldal építéséhez hasonlít, ahol a régi tartalmat átemeljük. Ezért a gondos tervezés elengedhetetlen. A következő lépések segítenek felkészülni:

1. Auditáld a Drupal 7 oldaladat

Ismerd meg alaposan a meglévő rendszert. Készíts egy részletes listát:

  • Tartalomtípusok és mezők: Milyen tartalomtípusok vannak, milyen mezőkkel? (pl. Cikk, Termék, Esemény)
  • Modulok: Milyen hozzájáruló (contributed) modulokat használsz? Melyek kulcsfontosságúak? Vannak-e egyedi moduljaid? Melyek azok, amelyeket már nem használsz?
  • Témák: Milyen témát használsz? Egyedi fejlesztésű vagy valamilyen alap téma módosított verziója?
  • Felhasználók és jogosultságok: Milyen szerepkörök és jogosultságok vannak beállítva?
  • Taxonómiák (kategóriák, címkék): Milyen szókészleteid vannak?
  • Menük: A navigációs struktúra.
  • Integrációk: Külső rendszerekkel való összeköttetések (pl. ERP, CRM, fizetési rendszerek, hírlevélküldő).

2. Határozd meg a céljaidat

Mit szeretnél elérni az új Drupal 10 oldallal? Csak a tartalom átvitele a cél, vagy egy komplett redesign, új funkciók bevezetése is tervben van? Ez befolyásolja a munka nagyságát.

3. Válassz migrációs stratégiát

  • „Big Bang” migráció: Az egész oldal egyszerre kerül át. Kisebb oldalaknál lehetséges, de kockázatosabb.
  • Fázisos migráció: Nagyobb, komplexebb oldalaknál érdemes lehet szakaszokban átköltöztetni a tartalmat vagy funkcionalitást.
  • Tartalom migráció vs. teljes újraépítés: Gyakran a legjobb megoldás az, hogy a tartalmat átmigrálod, de a funkcionalitást és a dizájnt teljesen újraépíted Drupal 10-re.

4. Készíts biztonsági mentést!

Mielőtt bármibe is belekezdenél, készíts teljes biztonsági mentést a Drupal 7 weboldaladról (fájlok és adatbázis).

5. Hozz létre egy fejlesztői környezetet

Telepíts egy tiszta Drupal 10 rendszert egy fejlesztői vagy staging környezetbe. Győződj meg róla, hogy a PHP verzió és az adatbázis megfelel a Drupal 10 követelményeinek (PHP 8.2 vagy újabb, MySQL 5.7.8+ vagy PostgreSQL 10.0+).

A migrációs folyamat: Lépésről lépésre

A Drupal 7-ről Drupal 10-re való átállás a Drupal Migrate modulcsaládra támaszkodik, ami egy robusztus és rugalmas keretrendszer a tartalom és konfiguráció átvitelére.

1. Készítsd elő a Drupal 7 oldalt

  • Frissítsd a Drupal 7-et a legutolsó point release-re.
  • Tisztítsd meg az oldalt: távolítsd el a nem használt modulokat, tartalmakat, felhasználókat. Ez egyszerűsíti a migrációt.

2. Telepítsd a Drupal 10-et és a migrációs modulokat

A Composer használata elengedhetetlen a Drupal 10 telepítéséhez és a függőségek kezeléséhez:

composer create-project drupal/recommended-project my_drupal10_site
cd my_drupal10_site/web
drush site:install --db-url=mysql://user:pass@host/db --site-name="My Drupal 10 Site"

Ezután telepítsd a migrációhoz szükséges modulokat:

composer require drupal/core-migrate drupal/migrate_plus drupal/migrate_tools
drush en migrate migrate_drupal migrate_plus migrate_tools -y

A migrate_drupal modul biztosítja a Drupal 6/7 forrásokból való migrációhoz szükséges alapvető funkcionalitást.

3. Csatlakoztasd a Drupal 7 adatbázist

A Drupal 10 settings.php fájljában (web/sites/default/settings.php) add hozzá a Drupal 7 adatbázis kapcsolatát:

$databases['migrate']['default'] = array(
  'database' => 'd7_adatbazis_neve',
  'username' => 'd7_adatbazis_felhasznalo',
  'password' => 'd7_adatbazis_jelszo',
  'host' => 'localhost',
  'port' => '',
  'driver' => 'mysql',
  'prefix' => '',
);

4. Futtasd az alap migrációt

A migrate_drupal_ui modul lehetővé teszi a migrációt egy grafikus felületen keresztül (/admin/content/migrate), ami kisebb oldalaknál hasznos lehet. Nagyobb, komplexebb oldalaknál a Drush parancssori eszköz használata javasolt.

drush migrate:upgrade --legacy-db-url=mysql://d7_user:d7_pass@localhost/d7_db_name --legacy-root=../path/to/d7/webroot

Ez a parancs megpróbálja detektálni a Drupal 7 oldalt, és elindítja az alapvető konfiguráció és tartalomtípusok migrációját.

5. Egyedi migrációs definíciók (YAML) és plugin-ek

Valószínűleg a legtöbb esetben szükség lesz egyedi migrációs konfigurációkra. A Drupal 7 és Drupal 10 közötti jelentős különbségek miatt az egyedi modulok, speciális mezők vagy komplex adattípusok migrációja saját YAML fájlok írását és esetleg PHP migrációs pluginok fejlesztését igényli.

Hozzon létre egy saját migrációs modult (pl. mymigration), ahol elhelyezheti ezeket a definíciókat. Ezek a fájlok (pl. mymigration/config/install/migrate.migration.my_custom_content.yml) leírják, hogyan térképeződik fel a Drupal 7 forrásadatbázisban lévő adat a Drupal 10 céladatbázis struktúrájára.

Példa egy egyszerű YAML definíció struktúrára:

id: my_custom_content
label: My Custom Content Migration
source:
  plugin: d7_node
  node_type: my_custom_type
destination:
  plugin: 'entity:node'
process:
  type:
    plugin: default_value
    default_value: my_custom_type
  title: title
  uid: uid
  created: created
  changed: changed
  status: status
  body/value: body/value
  body/format: body/format
  # ... további mezők feltérképezése

A migrate:status paranccsal ellenőrizheted a migrációk állapotát, a migrate:import [migration_id] paranccsal pedig futtathatod őket. A migrate:rollback [migration_id] hasznos, ha újra kell futtatni egy migrációt.

6. Modulok és Témák kezelése

  • Hozzájáruló modulok: Ellenőrizd, hogy a Drupal 7-es moduloknak van-e Drupal 10-es verziója. A Drupal.org projektoldalak vagy a Upgrade Status modul segíthet ebben. Ha nincs, keress alternatívát, vagy írd meg a hiányzó funkcionalitást.
  • Egyedi modulok: Ez a legmunkaigényesebb rész. A Drupal 7 modulok nem kompatibilisek a Drupal 10-zel. Teljesen újra kell írni őket a Drupal 8/9/10 architektúrájának (Symfony komponensek, Plugin API, Service Container, stb.) megfelelően. Ez jelentős fejlesztői tudást igényel.
  • Témák: A Drupal 7 témák sem kompatibilisek a Drupal 10-zel, mivel a sablonrendszer Twig-re változott. Két lehetőséged van:
    • Választhatsz egy új Drupal 10 alapú témát (pl. Olivero, Claro), és testre szabhatod.
    • Teljesen új, egyedi témát fejleszthetsz a Twig használatával, ami kihasználja a modern frontend fejlesztési eszközöket.

7. Futtasd a migrációkat és tesztelj

Futtasd le az összes szükséges migrációt. Fontos, hogy a migráció után alapos tesztelés következzen:

  • Ellenőrizd az összes tartalomtípust és a hozzájuk tartozó mezőket.
  • Nézd át a felhasználókat, szerepköröket és jogosultságokat.
  • Győződj meg arról, hogy a menük és taxonómiák helyesen működnek.
  • Teszteld az összes funkcionalitást (űrlapok, keresés, integrációk).
  • Ellenőrizd a képek, fájlok és egyéb médiafájlok helyességét.

8. Post-migrációs feladatok

  • SEO átirányítások: Ha a URL-struktúra megváltozott, mindenképpen állíts be 301-es átirányításokat a régi URL-ekről az újakra, hogy elkerüld a rangsorolás elvesztését.
  • Teljesítmény optimalizálás: Konfiguráld a gyorsítótárazást, optimalizáld a képeket és a CSS/JS fájlokat.
  • Biztonsági beállítások: Győződj meg arról, hogy minden biztonsági beállítás megfelelő.
  • Élesítés: Készíts egy részletes go-live tervet, ami magában foglalja a DNS frissítését, az utolsó ellenőrzéseket és a folyamatos monitorozást.

Kihívások és legjobb gyakorlatok

A Drupal 7-ről Drupal 10-re migráció összetett projekt, amely számos kihívást rejthet:

  • Egyedi kód és funkcionalitás: Az egyedi modulok és témák átírása a legnagyobb idő- és költségtényező.
  • Tanulási görbe: A Drupal 8/9/10 jelentős paradigmaváltást jelent a Drupal 7-hez képest. A Symfony, Twig, plugin-ek megértése elengedhetetlen.
  • Idő és Költség: Ne becsüld alá a projekt idő- és költségigényét. Készülj fel arra, hogy ez egy jelentős befektetés.

Legjobb gyakorlatok:

  • Kezdd korán: Ne halogasd a migrációt az utolsó pillanatig.
  • Inkrementális fejlesztés: Futtasd a migrációkat szakaszosan, és tesztelj minden lépés után.
  • Verziókezelés: Használj Git-et a kód verziókezelésére.
  • Automatizálás: Használd ki a Drush és a Composer erejét a folyamatok automatizálásához.
  • Dokumentáció: Dokumentálj minden egyedi migrációs lépést és döntést.
  • Szakértő segítség: Ha nincs meg a belső tudás, fontold meg egy Drupal szakértő, vagy egy Drupal fejlesztő cég bevonását. Ők felgyorsíthatják a folyamatot és minimalizálhatják a hibák kockázatát.

Konklúzió: Lépj a jövőbe!

A Drupal 7-ről Drupal 10-re való migráció egy befektetés a jövőbe. Bár a folyamat bonyolultnak tűnhet, a végeredmény egy gyorsabb, biztonságosabb, rugalmasabb és jobban skálázható weboldal lesz, amely hosszú távon képes lesz kiszolgálni üzleti céljaidat. Ne hagyd, hogy weboldalad elavuljon és kiszolgáltatottá váljon! Vágj bele a migrációba most, és élvezd a Drupal 10 nyújtotta előnyöket!

Leave a Reply

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük