# Opérations de maintenance et scheduler

## Opérations manuelles

### Vidage du cache

Il peut être nécessaire de vider complètement le cache Typo3.

On pourra: 

* soit passer par le backend, onglet Maintenance, bouton 'Flush cache'
* soit lancer en ligne de commande (nécessite l'extension [helhum/typo3-console](https://packagist.org/packages/helhum/typo3-console))
  : `php7.4 vendor/bin/typo3cms cache:flush`

### Mise à jour du core Typo3 ou des extensions tierces

La mise à jour du core Typo3 ou des extensions tierces dépend de la nature de la mise à jour.

Toute mise à jour nécessite un premier déploiement en environnement de test / preprod et la réalisation de
[tests](tests.md) avant tout déploiement en production. De même, on répètera ces tests sur l'environnement de 
production après y avoir effectué les mises à jour.


#### Mise à jour de sécurité

Les mises à jour de sécurité, qui concernent le troisième chiffre de version (1.0.X) 
se font simplement par la commande `composer upload`, car le fichier composer.json de l'installation 
ne devrait en principe fixer que les deux premiers chiffres de la version (`^X.X`).

    composer update


#### Mise à jour mineure

Une mise à jour mineure nécessite la mise à jour du fichier composer.json.

On pourra lister les extensions bénéficiant de telles mises à jour grâce à la commande:

    composer outdated

On traite ensuite au cas par cas en augmentant la version dans le composer.json, puis on lance la commande:

    composer update


#### Mise à jour majeure d'une extension

Avant toute mise à jour majeure, il faut vérifier la compatibilité de l'extension avec la version courante de Typo3.

Pour ce faire, on pourra par exemple visiter la page de l'extension sur [packagist](https://packagist.org/)

Ensuite, procéder comme pour une mise à jour mineure.


#### Mise à jour majeure de Typo3

Si on met à jour le noyau typo3, on pourra utiliser **l'outil de vérification** des extensions, accessible via le 
backend, onglet Upgrade > Scan Extension Files

Vérifier que les extensions tierces supportent cette nouvelle version de Typo3 en visitant par exemple les pages
de ces extensions sur [packagist](https://packagist.org/)

Vérifier que les extensions Opentalent sont compatibles. Si besoin, créer une nouvelle feature dans le gitflow (donc
une branche dédiée) et apportez les modifications nécessaires.

Dans le fichier composer.json, mettre à jour tous les paquets en `typo3/*` avec la version visée. Il est possible
que des extensions aient été ajoutées ou aient disparu entre les deux versions majeures, le mieux est donc de 
comparer cette liste à ce qui est proposé ici: <https://get.typo3.org/misc/composer/helper>

Lancer la commande:

    composer update

Accéder ensuite à l'interface d'installation: `https://<domain>/typo3/install.php`

Lancer les commandes suivantes:

* Maintenance: Flush cache
* Upgrade: check for broken extension
* Scan extension files 

Si tout va bien jusqu'ici, lancer ensuite:

* Maintenance: Analyse DB ; créer les tables et champs requis si besoin
* Maintenance: manage language packs ; tout mettre à jour
* Maintenance: reset backend user préférences

A partir de là, il devrait être possible d'accéder au Backend sans erreur.



## Opérations automatisées

Aucune opération automatisée n'est actuellement implémentée.

On pourra envisager d'en créer via le système de Scheduler de Typo3, ou via un simple système de crons.

Parmi les opérations qui pourraient être automatisées:

* nettoyage des logs et autres données persistantes
* `./vendor/bin/typo3 referenceindex:update`
* scanner les sites pour détecter les erreurs et liens morts

D'autres opérations automatisables sont proposées par le scheduler Typo3.

