Actualizarea instalării

Actualizarea TSync înseamnă două lucruri, în ordinea asta: fișierele noi ajung pe server, apoi baza de date se aliniază la ele. Pagina de față le parcurge pe amândouă și, mai important, îți explică ce îți spun ecranele pe parcurs.

Pe scurt: o actualizare poate fi întreruptă în orice moment, fără să se piardă nimic. Nu trebuie niciodată să reiei de la capăt și nu trebuie niciodată să restaurezi un backup fiindcă o pagină a arătat ciudat.


Înainte de orice: fă un backup

Nu pentru că actualizarea ar fi riscantă — fiecare pas e conceput să fie sigur de repetat — ci pentru că un punct de restaurare e singurul lucru care poate anula o decizie de care te răzgândești mai târziu.

TSync îl cere acum. Când deschizi ecranul de actualizare, el rulează întâi o listă scurtă de verificări, iar prima e chiar „există un backup și cât de vechi e?”. Dacă nu există niciunul, verificarea e marcată cu roșu, iar sumarul spune „1 needs your confirmation".

Poți face backup-ul chiar de acolo, din ecranul de actualizare, cu butonul Fă un backup al bazei de date acum. Dacă găzduirea ta nu permite backup-ul intern — unele găzduiri partajate îl blochează — ecranul îți spune asta pe șleau și te trimite să-l faci din panoul de control al găzduirii.

Sau îți poți asuma riscul și continua. Backup-ul lipsă e singurul element roșu despre care ai voie să decizi tu: bifează confirmarea care apare deasupra butonului — „I accept the risk marked in red above and want to continue anyway" — și actualizarea pornește. Restul elementelor roșii sunt realități ale serverului (PHP prea vechi, un folder în care actualizarea nu poate scrie, fișiere duplicate rămase în urmă), iar acelea nu se schimbă prin nicio confirmare: butonul rămâne stins până sunt reparate cu adevărat.


Pasul 1 — fișierele noi pe server

Urcă arhiva de release în folderul temp/ și lasă TSync să o dezarhiveze.

  1. Urcă tsync-erp-vX.Y.Z-….zip în temp/ (prin FTP sau file managerul găzduirii).

  2. Creează un fișier-cheie de unică folosință. Orice text aleator merge; prin SSH:

    printf '%s' "$(openssl rand -hex 16)" > temp/tsync-upgrade.allow
    

    Dacă nu ai SSH, creează temp/tsync-upgrade.allow din file manager și lipește în el orice text lung și aleator.

  3. Deschide https://domeniul-tău/tsync_upgrade/index/ urmat de exact acel text.

  4. Alege arhiva și apasă Extract.

Ce face în locul tău, ca să nu trebuiască să ții tu minte

  • Pune întâi site-ul în mentenanță, ca nimeni să nu nimerească peste o instalare pe jumătate înlocuită.
  • Dezarhivează tot în afară de fișierele tale încărcate, logo și branding, configurarea bazei de date, cache-urile și jurnalele. Acelea nu se ating niciodată — lista e în produs, nu în capul celui care face deploy-ul.
  • Redenumește folderul de instalare în aceeași trecere. (Lăsat acolo, el scoate deliberat site-ul din funcțiune — un instalator accesibil din internet e un pericol real.)
  • Golește cache-ul de fișiere al PHP, ca noul cod să intre în vigoare imediat, nu la o repornire ulterioară.
  • Pune notele de release exact unde le caută ecranul de actualizare.
  • Se încuie la loc. Fișierul-cheie se șterge, deci adresa nu mai poate fi refolosită. Data viitoare creezi altul.

Există și o opțiune doar previzualizare, care listează exact ce s-ar schimba și nu scrie nimic.


Pasul 2 — baza de date se aliniază

După extragere, urmează linkul pe care ți-l dă pagina. Te duce în administrare și — important — poartă cheia care te lasă prin pagina de mentenanță, cât timp ceilalți sunt încă opriți.

Vei vedea Database upgrade required, cu versiunea de la care pleci și cea la care ajungi.

Înainte să pornești

Deschide Before you start. Fiecare linie e ori în regulă, ori de verificat, ori ceva ce trebuie reparat:

Verificare De ce contează
Backup al bazei de date Singura ta cale înapoi. E marcat cu roșu dacă n-a existat niciodată unul — dar poți bifa confirmarea și continua.
Unealta de backup Dacă serverul poate face unul pentru tine.
Versiunea PHP și extensiile Actualizarea are nevoie de ele; lipsa lor o oprește curat, nu la jumătate.
Timpul de execuție Nu e o problemă — el decide cât durează fiecare trecere.
Spațiu liber pe disc Un backup plus o arhivă au nevoie de loc.
Drepturi pe baza de date Actualizarea creează și modifică tabele. Se testează pe bune, pe un tabel de probă.
Fișierele de migrare Prinde fișiere duplicate rămase de la o actualizare anterioară, care altfel ar opri tot.
Drepturi pe foldere Folderele în care scrie actualizarea.

Ce urmează să ruleze

Deschide What will run ca să vezi lista exactă a pașilor, fiecare cu versiunea lui, și marcajul pe cei care schimbă structura bazei de date. În acest moment nu a rulat nimic — lista doar se scurtează pe măsură ce actualizarea avansează.

Rularea

Apasă Run upgrade now. Apare o bară de progres care înaintează pe măsură ce fiecare pas se încheie.

Lucrul se face în treceri scurte. TSync citește cât timp permite găzduirea ta pentru o singură pagină, se oprește bine înainte de limita aia și continuă automat. Nu începe niciodată un pas pe care nu are timp să-l termine. Pe o instalare foarte veche pot fi câteva sute de pași și multe treceri — e normal, și poți urmări cum se întâmplă.


Dacă se întrerupe

Partea asta merită citită de două ori.

Dacă îți cade conexiunea, închizi pagina, adoarme laptopul sau găzduirea taie cererea, s-ar putea să vezi o eroare sau pur și simplu nimic. Aia e o întrerupere, nu o eșuare.

Fiecare pas se înregistrează în clipa în care se termină. Deci:

  1. Deschizi din nou administrarea.
  2. Ecranul spune acum „The upgrade was interrupted, not failed” și arată exact la ce pas a ajuns.
  3. Apeși Continue the upgrade.

Continuă de acolo. Nu repetă ce a făcut deja și nu o ia de la capăt.

Nu restaura backup-ul din cauza unei actualizări întrerupte. Ai arunca muncă deja reușită. Restaurarea e pentru o decizie pe care vrei s-o anulezi, nu pentru o pagină care a arătat ciudat.

Dacă un pas chiar eșuează, ecranul spune care și de ce, iar tot ce a fost înainte rămâne aplicat. Repari cauza și apeși Continue.


Ce văd clienții și vizitatorii

Cât timp baza de date se actualizează, oricine altcineva intră pe site primește o pagină scurtă „Maintenance in progress”, cu statusul tehnic corect, ca browserele și motoarele de căutare să știe să revină, nu să înregistreze o eroare.

Se ridică singură când actualizarea se termină. Și expiră de la sine — deci chiar dacă o actualizare moare complet la jumătate, site-ul nu poate rămâne închis la nesfârșit.

Pe tine nu te afectează: linkul pe care l-ai urmat din extractor poartă cheia care te lasă direct prin ea.


De la ce versiune se poate actualiza?

Orice instalare de la schema de pornire livrată încoace ajunge la versiunea curentă într-o singură rulare. Fără opriri obligatorii la versiuni intermediare.

Mai vechi de atât, sau dacă nu ești sigur: folosește traseul etapizat din UPGRADE.md și fă-l întâi pe o copie. Dacă migrezi o instalare foarte veche, vorbește cu noi — aia e altă treabă decât o actualizare, iar Centrul de upgrade e construit exact pentru ea.


Un singur lucru de făcut manual, o dată

Versiunile mai vechi livrau un fișier numit opcache_reset.php la rădăcina site-ului. Golea cache-ul PHP, dar nu cerea nicio autentificare, ceea ce nu are ce căuta accesibil pe un site public.

Nu mai face parte din release, iar extractorul face treaba asta singur acum. Dar o actualizare doar adaugă și înlocuiește fișiere — nu șterge niciodată. Deci după actualizare, șterge opcache_reset.php din rădăcina site-ului.


Verifică un singur folder: să nu fie citibil din web

Instalarea ta conține un folder numit tools/. În el sunt două fișiere pe care pagina de Sănătate le citește de pe disc, ca să știe despre ce probleme cunoscute să nu te mai avertizeze. Nu conțin parole — dar descriu ce verificări interne de securitate au fost lăsate deoparte și în ce fișiere, iar asta nu e ceva ce ar trebui să poată descărca un străin.

N-au avut niciodată nevoie să răspundă prin web. Din această versiune, pachetul livrează o regulă care blochează folderul, atât pentru Apache, cât și pentru IIS.

O singură verificare, o dată, după actualizare. Deschide adresa asta în browser, cu domeniul tău:

https://domeniul-tau.ro/tools/release_quality_allowlist.json
  • Trebuie să primești „Forbidden" sau „Not found". Așa e corect.
  • Dacă fișierul se descarcă sau se afișează, serverul tău web nu citește regula livrată cu pachetul. E cazul obișnuit pe nginx. Cere-i celui care administrează serverul să blocheze folderul tools/ din configurația lui.

Asta e singura parte a reparației care nu se poate face din interiorul aplicației: doar serverul tău web decide ce servește.


După actualizare

  • Deschide administrarea — versiunea din Setări → Info trebuie să fie cea nouă.
  • Deschide și propriul portal de client, nu doar administrarea. E de ajuns pagina de autentificare. E singurul mod de a observa o întreagă clasă de probleme care nu apare niciodată pe partea în care lucrezi zilnic.
  • Dacă ceva pare vechi, e aproape întotdeauna un cache. Pe cel al PHP îl golește extractorul; pe cel al browserului îl golești cu o reîncărcare forțată.