> For the complete documentation index, see [llms.txt](https://akyos.gitbook.io/book/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://akyos.gitbook.io/book/prestashop/mise-a-jour.md).

# Mise à jour

Pour mettre à jour PrestaShop 9, il faut utiliser le module Update Assistant.

### Principe

Une mise à jour PrestaShop ne consiste pas seulement à remplacer des fichiers, mais aussi la mise à jour de la base de données.

### Avant la maj :&#x20;

Avant toute mise à jour, il faut toujours :

* Faire une **sauvegarde complète** des fichiers et de la base de données,
* Vérifier la compatibilité du thème et des modules
* Prévoir une recetage après la mise à jour,
* Éviter toute intervention en production pendant l’opération.

### Résumé

Le process de mise à jour est le suivant :

1. Sauvegarde complète
2. Mise à jour d’un maximum de modules
3. Installation du site en local
4. Mise à jour PrestaShop en local via le module **Update Assistant**
5. Mise à jour des modules à risque
6. Mise à jour du dépôt Git
7. Nouvelle sauvegarde de la base de prod
8. Application des scripts SQL du module autoupgrade
9. `git pull`
10. Recettage et test du paiement client

### Étapes

#### **1. Sauvegarde complète**

Faire une sauvegarde complète du site :

* fichiers
* base de données

#### **2. Mise à jour d’un maximum de modules**

Mettre à jour le plus de modules possible avant la montée de version PrestaShop.

**Modules exclus**

Ces modules posent régulièrement problème lors des mises à jour. Ils doivent être vérifiés **en local** avant toute mise en production :&#x20;

* **Chronopost**
* **Colissimo**
* **Creative Elements**

#### **3. Installation du site en local**

Mettre le site en local à partir de la sauvegarde.

#### **4. Mise à jour de PrestaShop en local**

Lancer la mise à jour via le module **Update Assistant**.

#### **5. Mise à jour des modules à risque**

Après la mise à jour du core, mettre à jour en local :

* **Chronopost**
* **Colissimo**
* **Creative Elements**

Si il y a n'y a pas de soucis, alors le faire en production.

#### **6. Mise à jour du dépôt Git**

Une fois la mise à jour validée en local, mettre à jour le dépot git.

#### **7. Nouvelle sauvegarde de la base de production**

Juste avant la mise en production, refaire une sauvegarde de la base de données de production.

#### **8. Mise à jour de la base de données en production**

Mettre à jour la base de données en reprenant les scripts SQL utilisés par le module autoupgrade, présents dans :

```
/modules/autoupgrade/upgrade/sql/
```

#### **9. Déploiement en production**

Déployer les fichiers via `git pull` . Refaire un `composer install`

#### **10. Tests en production**

Après déploiement, faire les tests minimums suivants :

* création de compte
* test de commande
* aller jusqu’à l’étape de paiement

Ensuite, demander au client de faire un **test de paiement** afin de valider complètement le tunnel de commande.

{% hint style="warning" %}
J'insiste sur le test de paiement. On ne veut pas attendre 2 jours sur un site e-commerce avant de s'apercevoir qu'il y a une erreur 500 sur la page de confirmation de commande ...
{% endhint %}

### Pourquoi ce process

L’avantage de cette méthode est qu’elle **ne nécessite pas d’interrompre le site**.

Il serait possible d’utiliser directement **Update Assistant** en production, ce qui serait plus rapide, mais cela impliquerait :

* de mettre le site en maintenance
* et de prévoir un éventuel rollback en cas d’échec
