> For the complete documentation index, see [llms.txt](https://documentation.efalia.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://documentation.efalia.com/documentations/efalia-process/administration/administration-technique/installation-mise-a-jour.md).

# Installation et Mise à Jour

Cette page décrit la procédure de **mise à jour** d'une installation existante d'Efalia Process. Pour une installation initiale sur un nouveau serveur, consultez l'article [Procédure d'Installation](/documentations/efalia-process/administration/administration-technique/procedure-installation.md).

***

## Avant la Mise à Jour

{% hint style="danger" %}
⚠️ **Sauvegarde obligatoire**

Effectuez impérativement une **sauvegarde complète** avant toute mise à jour. Une mise à jour mal exécutée peut rendre l'application inaccessible.

**Éléments à sauvegarder :**

* Base de données Efalia Process
* Répertoire de données `$WORKEY_DATA` (pièces jointes, settings.json, thèmes…)
* Fichiers de configuration Tomcat : `catalina.properties`, `log4j.properties`, `setenv.sh`/`setenv.bat`
* Fichier de licence `<CATALINA_HOME>/workey/workey-license.xml`
* Bases d'archives si le module d'archivage est activé
  {% endhint %}

### Checklist pré-mise à jour

{% hint style="warning" %}
**Checklist :**

☐ Sauvegarder la base de données\
☐ Sauvegarder `$WORKEY_DATA`\
☐ Sauvegarder `<CATALINA_HOME>/conf/catalina.properties`\
☐ Télécharger les [livrables](/documentations/efalia-process/administration/administration-technique/livrables.md) de la nouvelle version (même SGBD)\
☐ Lire les notes de version pour détecter les changements de configuration\
☐ Planifier la mise à jour pendant une fenêtre de maintenance (heures creuses)\
☐ Informer les utilisateurs de l'indisponibilité planifiée
{% endhint %}

***

## Procédure de Mise à Jour

{% stepper %}
{% step %}

#### Activer le mode maintenance

Depuis la console d'administration (`/workey/admin`), activez le **mode maintenance** pour informer les utilisateurs de l'indisponibilité imminente.
{% endstep %}

{% step %}

#### Arrêter Tomcat

Arrêtez proprement le serveur Tomcat avant de remplacer les fichiers.

**Linux :**

```bash
<CATALINA_HOME>/bin/shutdown.sh
# Vérifier l'arrêt complet
ps aux | grep tomcat
```

**Windows :**

```cmd
<CATALINA_HOME>\bin\shutdown.bat
```

Attendez l'arrêt complet du processus avant de passer à l'étape suivante.
{% endstep %}

{% step %}

#### Décompresser les nouveaux livrables

Décompressez l'archive de la nouvelle version dans un répertoire temporaire :

```
workey-6.14.2-mysql/
├── dev/
├── tools/
└── server/
    ├── common/
    └── mysql/
```

{% hint style="info" %}
💡 Vérifiez que la version de l'archive correspond bien à votre SGBD (ex : `-mysql`, `-oracle`, `-postgresql`).
{% endhint %}
{% endstep %}

{% step %}

#### Sauvegarder et comparer la configuration

Avant de remplacer les fichiers de configuration, **comparez** les nouveaux fichiers avec vos fichiers actuels pour identifier les nouveaux paramètres à prendre en compte :

```bash
# Linux — comparer les deux versions
diff <CATALINA_HOME>/conf/catalina.properties server/common/catalina.properties
```

Notez les nouveaux paramètres ou les paramètres modifiés dans la nouvelle version.
{% endstep %}

{% step %}

#### Déployer les nouveaux fichiers de configuration

Mettez à jour les fichiers de configuration en **préservant vos valeurs spécifiques** (connexion base de données, LDAP, répertoire de données, etc.) :

| Fichier source (archive)            | Destination                                |
| ----------------------------------- | ------------------------------------------ |
| `server/common/catalina.properties` | `<CATALINA_HOME>/conf/catalina.properties` |
| `server/common/log4j.properties`    | `<CATALINA_HOME>/conf/log4j.properties`    |

{% hint style="danger" %}
⚠️ **Ne pas écraser vos paramètres**

Ne copiez pas directement le nouveau fichier `catalina.properties` en écrasant l'ancien. Ajoutez uniquement les **nouveaux paramètres** au fichier existant, en conservant vos valeurs de connexion (BDD, LDAP, répertoire de données…).
{% endhint %}
{% endstep %}

{% step %}

#### Remplacer le fichier WAR

Supprimez l'ancien WAR et le répertoire déployé, puis déposez le nouveau :

```bash
# Supprimer l'ancien déploiement
rm -f <CATALINA_HOME>/webapps/workey.war
rm -rf <CATALINA_HOME>/webapps/workey/

# Copier le nouveau WAR
cp server/[sgbd]/workey.war <CATALINA_HOME>/webapps/
```

Tomcat redécompressera automatiquement l'application au démarrage.
{% endstep %}

{% step %}

#### Mettre à jour le driver JDBC (si nécessaire)

Si les notes de version indiquent une mise à jour du driver JDBC, remplacez l'ancien driver dans `<CATALINA_HOME>/lib/` par la nouvelle version.

{% hint style="warning" %}
⚠️ Supprimez l'ancienne version du driver avant de déposer la nouvelle pour éviter les conflits de classpath.
{% endhint %}
{% endstep %}

{% step %}

#### Mettre à jour la licence (si nécessaire)

Si Efalia vous a fourni un nouveau fichier de licence (nouvelles fonctionnalités, renouvellement) :

```bash
cp workey-license.xml <CATALINA_HOME>/workey/workey-license.xml
```

{% endstep %}

{% step %}

#### Démarrer Tomcat et vérifier

Démarrez Tomcat et surveillez les logs pour détecter d'éventuelles erreurs :

```bash
<CATALINA_HOME>/bin/startup.sh
tail -f <CATALINA_HOME>/logs/catalina.out
```

**À vérifier dans les logs :**

* Absence d'erreur `ERROR` ou d'`Exception` au démarrage
* Message `Server startup in [X] ms` — Tomcat démarré avec succès
* Éventuelles migrations de base de données automatiques (premier démarrage d'une nouvelle version majeure)

📸 **CAPTURE : admin-tech-maj-01-verification-logs.png**

> Console affichant les logs Tomcat au démarrage avec le message de succès et la version d'Efalia Process
> {% endstep %}

{% step %}

#### Vérifier le bon fonctionnement

Accédez aux 4 interfaces et vérifiez leur bon fonctionnement :

| Interface       | URL                                            | Vérification                         |
| --------------- | ---------------------------------------------- | ------------------------------------ |
| Application web | `http://[serveur]:8080/workey`                 | Connexion et affichage des documents |
| Console d'admin | `http://[serveur]:8080/workey/admin`           | Version affichée correcte            |
| Designer HTML   | `http://[serveur]:8080/workey/designer`        | Chargement des processus             |
| API REST        | `http://[serveur]:8080/workey/workey-j2ee-api` | Documentation accessible             |

Effectuez un test fonctionnel rapide : créez un document dans un processus, vérifiez la liste des utilisateurs, consultez un document existant.
{% endstep %}

{% step %}

#### Désactiver le mode maintenance

Une fois la mise à jour validée, désactivez le mode maintenance depuis la console d'administration pour rendre l'application disponible aux utilisateurs.
{% endstep %}
{% endstepper %}

***

## Migration de Base de Données

À chaque version majeure, Efalia Process peut effectuer des migrations automatiques de schéma de base de données au premier démarrage.

{% hint style="info" %}
💡 Ces migrations sont **automatiques** : Efalia Process compare la version du schéma en base avec la version de l'application et applique les scripts SQL nécessaires. Elles sont journalisées dans `catalina.out`.
{% endhint %}

**En cas d'erreur de migration :**

1. Consultez `catalina.out` pour identifier le script SQL en échec
2. Vérifiez que le compte base de données dispose des droits suffisants (`ALTER TABLE`, `CREATE INDEX`, etc.)
3. Restaurez la sauvegarde si la migration est trop avancée
4. Contactez le support Efalia avec les logs

***

## Rollback (Retour Arrière)

Si la mise à jour échoue et que l'application ne fonctionne pas correctement :

{% stepper %}
{% step %}

#### Arrêter Tomcat

```bash
<CATALINA_HOME>/bin/shutdown.sh
```

{% endstep %}

{% step %}

#### Restaurer les fichiers

Remplacez le WAR et les fichiers de configuration par les versions sauvegardées :

```bash
rm -f <CATALINA_HOME>/webapps/workey.war
rm -rf <CATALINA_HOME>/webapps/workey/
cp sauvegarde/workey.war <CATALINA_HOME>/webapps/
cp sauvegarde/catalina.properties <CATALINA_HOME>/conf/
```

{% endstep %}

{% step %}

#### Restaurer la base de données

Si des migrations de schéma ont eu lieu, restaurez la sauvegarde de la base de données à partir du dump pré-mise à jour.

{% hint style="danger" %}
⚠️ La restauration de la base de données efface toutes les données créées ou modifiées depuis la sauvegarde. Communiquez clairement sur cet impact avant de procéder.
{% endhint %}
{% endstep %}

{% step %}

#### Redémarrer et vérifier

Redémarrez Tomcat avec l'ancienne version et vérifiez le bon fonctionnement avant de recontacter le support.
{% endstep %}
{% endstepper %}

***

## Bonnes Pratiques

{% hint style="success" %}
**✅ À faire :**

* Tester la mise à jour sur un **environnement de recette** avant la production
* Planifier les mises à jour pendant les **heures creuses** (nuit, week-end)
* Lire les **notes de version** avant chaque mise à jour
* Conserver les sauvegardes au moins **30 jours** après une mise à jour réussie
* Documenter la version déployée et la date dans un journal de bord interne
  {% endhint %}

{% hint style="danger" %}
**❌ À éviter :**

* Mettre à jour en production sans avoir testé en recette
* Écraser `catalina.properties` sans comparer les différences
* Mettre à jour le WAR sans arrêter Tomcat au préalable
* Ignorer les erreurs dans `catalina.out` lors du premier démarrage
  {% endhint %}

***

## Questions Fréquentes

<details>

<summary>Faut-il déployer les processus à nouveau après une mise à jour ?</summary>

En général, non. Les processus déployés sont stockés en base de données et restent actifs après une mise à jour d'Efalia Process. Cependant, si les notes de version mentionnent des évolutions du moteur de processus ou du Designer, un redéploiement peut être recommandé pour bénéficier des nouvelles fonctionnalités.

</details>

<details>

<summary>La mise à jour préserve-t-elle les données utilisateur et les documents ?</summary>

Oui. Les documents, pièces jointes et données utilisateur sont stockés en base de données et dans `$WORKEY_DATA`. Ces données ne sont pas affectées par le remplacement du fichier WAR. Seule une migration de schéma incorrecte ou une restauration de base de données peut impacter les données.

</details>

<details>

<summary>Peut-on mettre à jour Efalia Process sans arrêter Tomcat ?</summary>

Non. Tomcat verrouille les fichiers de l'application déployée. Une mise à jour du WAR sans arrêt du serveur peut corrompre le déploiement. Arrêtez toujours Tomcat avant de remplacer le WAR.

</details>

<details>

<summary>Comment connaître la version d'Efalia Process actuellement déployée ?</summary>

La version est affichée dans :

* La **console d'administration** (`/workey/admin`) en bas de page ou dans la section Paramètres
* Les **logs Tomcat** (`catalina.out`) lors du démarrage
* L'en-tête de l'**API REST** (`/workey/workey-j2ee-api`)

</details>

***

Pour aller plus loin :

* [Procédure d'Installation](/documentations/efalia-process/administration/administration-technique/procedure-installation.md)
* [Livrables](/documentations/efalia-process/administration/administration-technique/livrables.md)
* [Démarrage et Arrêt du Serveur](/documentations/efalia-process/administration/administration-technique/demarrage-arret-serveur.md)
* [Annexes Techniques](/documentations/efalia-process/administration/administration-technique/annexes-techniques.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://documentation.efalia.com/documentations/efalia-process/administration/administration-technique/installation-mise-a-jour.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
