Audit Migratsioon Drupal

Custom-moodulite audit enne Drupal-migratsiooni

🎧 Kuula kõiki artikleid järjest

Drupali tuuma uuendustee on dokumenteeritud. Projekti tegelik risk peitub sageli custom-moodulites, mis on aastate jooksul äri jaoks kriitiliseks muutunud.

Miks custom-moodulid on migratsiooni põhirisk

Drupal 7 → 11 migratsioonil on core'i uuendustee hästi dokumenteeritud ja tööriistad olemas. Contrib-moodulite puhul on drupal.org-ist näha, kas Drupal 11 versioon on olemas.

Custom-moodulid on nagu must kast. Keegi ei tea nende seisu peale selle, kes nad kirjutas — ja sageli on see inimene juba ammu projekti juurest lahkunud. Just siin peitub suurim migratsiooni risk.

Mida custom-koodis otsida

Kasutatud API-d

Drupal 7 ja Drupal 11 API-d on fundamentaalselt erinevad. Drupal 7 kasutas globaalseid funktsioone (node_load(), db_query()), Drupal 11 kasutab objektorienteeritud teenuseid.

bash
# Otsi aegunud Drupal 7 funktsioone
grep -r "node_load\|db_query\|db_select\|drupal_set_message" modules/custom/

Iga leitud vana funktsioon vajab analüüsi, uue kirjutamist ja testimist.

Ärikriitilised hook-id

Drupal kasutab hook-süsteemi käitumise muutmiseks. Custom-moodul võib implementeerida kümned hook-id — osa on triviaalsed, osa kriitilised.

bash
# Leia kõik hook implementatsioonid
grep -r "function.*_hook_\|implements hook" modules/custom/ --include="*.module"

Kaardista: millised hook-id puudutavad makseid, kasutajate autentimist, sisu avaldamist, e-kirju, välise API-päring.

Andmemudel

Custom-moodul võib defineerida oma andmebaasitabeleid. Need tuleb migreerimisel kaasa võtta.

bash
# Otsi schema definitsioone
grep -r "hook_schema\|db_create_table" modules/custom/

Iga custom tabel on lisakomponent migratsioonis.

Välised sõltuvused

Kas custom-moodul integreerub välise API-ga? See API võib olla muutunud aastade jooksul.

bash
# Otsi HTTP päringuid
grep -r "drupal_http_request\|curl_exec\|file_get_contents.*http" modules/custom/

Contrib-moodulite sõltuvused

Custom-moodul võib sõltuda contrib-moodulist millel ei ole Drupal 11 versiooni. See on blocker.

bash
grep -r "dependencies:" modules/custom/*/my_module.info.yml

Auditi tulemus: kolm kategooriat

Pärast analüüsi jagame custom-moodulid kolme kategooriasse:

Portida — moodul on ärikriitiline, vajab uuele API-le viimist. Hinnanguline töö: X tundi.

Asendada — funktsioon, mida moodul teeb on Drupal 11-s olemas standardmoodulina (nt Views, Media). Ei pea portima.

Eemaldada — moodulit ei kasutata enam (aegunud funktsionaalsus, test-kood). Ei pea portima.

Miks audit enne migratsiooni algust

Kui auditi teed migratsiooni keskel, leiad blokkeri, kui töö on juba pooleli. Kui teed auditi enne, saad:

  • Realistliku töömahuhinnangu (mitte hinnangu, mis muutub 3x töö käigus)
  • Otsused, mida ümber kirjutada vs eemaldada vs portida
  • Teadmise millised äriprotsessid vajavad eraldi testimist

Custom-moodulite audit on osa meie Drupal auditi teenusest. Kirjuta meile enne migratsiooni algust — aitame kaardistada tegeliku riski.

Kaido Toomingas, WebPro tehniline juhtWebPro Company OÜ Tehniline juht: Kaido Toomingas

Vajad Drupal abi?

Kui artikkel puudutab sinu olukorda, ei pea kõike lõpuni lugema. Sinuga suhtleb päris inimene ja aitab järgmise sammuni jõuda.