PrestaShop és un sistema de gestió de continguts lliure i de codi obert pensat per construir des de zero botigues en línia de comerç electrònic. Està enfocat a permetre crear botigues en línia tant a petites empreses com a grans corporacions.
El març de 2022 van llançar l'última versió estable de Prestashop, Prestashop 8, canviant completament moltes característiques i renovant el disseny en la majoria d'aspectes.
Molts clients de Prestashop avui dia decideixen actualitzar el seu comerç electrònic a l'última versió però troben dificultats per poder fer aquesta actualització satisfactòriament, així que aquí us portem un article sobre com actualitzar-lo pas a pas mitjançant CLI (línia d'ordres).
Fer un Snapshot del servidor virtual en qüestió
Abans de començar l'actualització de versió de Prestashop és molt important fer un Snapshot del servidor en qüestió, ja que si no fem un Snapshot podem perdre la informació de tot el nostre web i no poder-la recuperar.
Descàrrega de la versió
El primer pas és comprovar l'última versió a https://github.com/PrestaShop/PrestaShop/releases .
La descàrrega es fa a la línia d'ordres, com es fa aquí amb la versió 8.0.2:
wget -O prestashop-upgrade.zip https://github.com/PrestaShop/PrestaShop/releases/download/8.0.2/prestashop_8.0.2.zipExtracció de fitxers
Extreu els fitxers de la carpeta amb l'ordre "unzip" al terminal d'Ubuntu:
unzip prestashop-upgrade.zip && unzip prestashop.zipUn cop tinguis les carpetes com ara "classes/", "modules/", "themes/",... podràs continuar amb el pas següent.
Neteja de fitxers d'exemple
Evita sobreescriure els recursos de producció (imatges, conf ...) amb les dades per defecte. Aquestes carpetes es poden eliminar de la nova versió:
img/
override/
Important
Tots els altres fitxers presents en la nova versió sobreescriuran els fitxers existents. Tots els canvis que hagis fet en el codi font original es perdran (això no és recomanable, no has de modificar mai els fitxers del nucli).
A més, hauràs de canviar el nom de la carpeta "admin" perquè coincideixi amb el nom de la carpeta admin de la teva botiga. Això evitarà una duplicació no desitjada del contingut d'administració.
Activar el mode de manteniment
Això es pot fer des del tauler d'administració:
PrestaShop >= 1.7, a Parámetros de la tienda > Configuración > Pestaña Mantenimiento > Habilitar tienda
Desactivar la memòria cau
Si has activat un sistema de memòria cau (per exemple, Memcache) a la botiga, assegura't de desactivar-lo a "Parámetros avanzados" > "Rendimiento". Podràs tornar a activar-lo un cop finalitzat el procés d'actualització. També pots eliminar les carpetes var/cache/prod i var/cache/dev.
Important
Nota sobre la carpeta vendor: Les actualitzacions anteriors de PrestaShop 1.7 van mostrar que es poden produir conflictes en fusionar la nova carpeta vendor/ amb l'antiga. Per evitar aquest problema, recomanem eliminar aquesta carpeta de la botiga existent abans de copiar-hi la nova.
rm -rf vendor/
El pas següent és copiar el contingut de la nova carpeta des del terminal:
cp -R <ruta_a_la_nueva_carpeta>/* <ruta_a_la_actual_tienda>/Exemple:
cp -R ~/Descargas/prestashop/* /var/www/html/Actualització de la base de dades
Un cop copiats els fitxers, la base de dades de la botiga està preparada per ser actualitzada.
Quan estiguis a punt, executa el fitxer upgrade/upgrade.php del mòdul autoupgrade des de la CLI del servidor:
php modules/autoupgrade/upgrade/upgrade.phpUn cop executat, es mostrarà un registre XML. Els resultats es troben a l'atribut result de la primera etiqueta <action>:
ok: si s'han trobat i executat les actualitzacions
error: si alguna cosa ha anat malament
info: per a les accions següents, que mostra els detalls del procés
Quan l'script d'actualització trobi algunes actualitzacions per aplicar, les consultes SQL executades es llistaran juntament amb el resultat respectiu.
<?xml version="1.0" encoding="UTF-8"?><action result="ok" id=""><action result="info" id="1.7.0.5"><!
<action result="info" id="1.7.0.5"><![CDATA[[OK] PHP 1.7.0.5 : /* PHP:ps_update_tabs(); */]]></action>
<action result="info" id="1.7.0.5"><![CDATA[[OK] SQL 1.7.0.5 : ALTER TABLE `ps_currency` MODIFY `name` varchar(64) NOT NULL]]></action>
<action result="info" id="1.7.1.0"><![CDATA[[OK] SQL 1.7.1.0 : SET SESSION sql_mode = '']]></action>
<action result="info" id="1.7.1.0"><![CDATA[[OK] SQL 1.7.1.0 : SET NAMES 'utf8']]></action>
Pots comprovar que cada acció està marcada com a "OK". Si no és així, es mostraran detalls addicionals després de la sol·licitud, que poden ajudar-te a solucionar el problema i a tornar a executar la sol·licitud manualment a la base de dades. En alguns casos, pot ser que necessitis restaurar la còpia de seguretat de la base de dades i començar de nou.
També pot aparèixer un codi d'error. Cada codi està relacionat amb un missatge descrit aquí:
Error #27: La botiga està executant una versió més recent que el contingut proporcionat per la carpeta d'instal·lació.
Error #28: La botiga ja té la versió a la qual intentes actualitzar.
Error #29: No s'ha pogut trobar la versió actual. Comprova el fitxer de paràmetres de la base de dades i la connexió amb aquesta.
Error #31: No es pot trobar el directori d'actualització a la ruta d'instal·lació; existeix la carpeta install/upgrade/sql i no està buida?
Error #32: No cal aplicar cap actualització.
Error #33: Error en carregar un fitxer d'actualització SQL. Comprova els permisos de la carpeta install/upgrade/sql.
Error #40: La versió proporcionada al fitxer install/install_version.php no és vàlida.
Error #43: Error en actualitzar l'esquema de la base de dades fent servir doctrina.
Error #44: Error en actualitzar les traduccions.
Error #45: Error en habilitar el tema.
Neteja
Abans de continuar, cal netejar algunes coses.
La carpeta d'instal·lació, utilitzada per executar les actualitzacions de la base de dades, ja no és necessària i es pot eliminar de manera segura.
En obrir la teva botiga (al front office o al back office) al navegador, és possible que vegis alguns problemes visuals. Això pot ser perquè els recursos antics encara són a la memòria cau. Torna'ls a carregar forçant l'actualització de la pàgina (prem ctrl+R a Windows / Linux o cmd+R a Mac OS) o esborrant la memòria cau del navegador.
Actualització de mòduls
Els fitxers dels mòduls s'han actualitzat durant la còpia de fitxers; tanmateix, molts poden requerir canvis addicionals a la base de dades. Comprova a la pàgina de mòduls del Back Office si hi ha actualitzacions pendents d'execució.
Ves al tauler d'administració i inicia la sessió. Observaràs que la versió mostrada ha canviat a la pàgina d'inici de sessió. A continuació, al menú, fes clic a la pàgina del mòdul per arribar al seu catàleg.
Esperem haver-te ajudat amb aquest tutorial 🙂. Recorda, si tens consultes sobre aquesta o qualsevol altra qüestió relacionada amb els teus servidors a Clouding, no dubtis a escriure a soporte@clouding.io Som al teu costat per al que necessitis, consulta'ns!