# Maintenance, bonnes pratiques et point d'attention

### **Maintenance et bonne pratique**

**1. Évolution du schéma SQL**  
Si la requête évolue et change de colonnes ou de types, il faut repasser la source en <span class="_inlineMarkdown_x0d1c_75 inline-markdown text-size-chat-sm font-mono blend bg-token-text-code-block-background rounded-sm px-1.5 py-0.5 leading-none extension:bg-token-foreground/10 electron:bg-token-list-hover-background/60">Brouillon</span>, puis relancer la génération du modèle et de l’interface avant tout nouveau rechargement.

**2. Verrouillages de sécurité**

- le nom des configurations de connexion doit être unique
- le nom des sources doit être unique
- la requête SQL ne peut plus être modifiée lorsque l’état n’est plus <span class="_inlineMarkdown_x0d1c_75 inline-markdown text-size-chat-sm font-mono blend bg-token-text-code-block-background rounded-sm px-1.5 py-0.5 leading-none extension:bg-token-foreground/10 electron:bg-token-list-hover-background/60">Brouillon</span>
- les champs structurants du modèle généré sont verrouillés une fois l’interface créée

**3. Suppression d’une source**  
La suppression d’une source supprime également les objets OpenProd générés qui lui sont associés : modèle manuel, données, vues, action, menu, cron et droits d’accès générés par le module.

**4. Recommandations**

- privilégier des requêtes SQL lisibles, stables et limitées au besoin métier réel
- conserver un alias <span class="_inlineMarkdown_x0d1c_75 inline-markdown text-size-chat-sm font-mono blend bg-token-text-code-block-background rounded-sm px-1.5 py-0.5 leading-none extension:bg-token-foreground/10 electron:bg-token-list-hover-background/60">Name</span> explicite dans la requête pour obtenir des libellés utilisateurs clairs
- tester systématiquement la connexion et la prévisualisation avant la première génération
- utiliser <span class="_inlineMarkdown_x0d1c_75 inline-markdown text-size-chat-sm font-mono blend bg-token-text-code-block-background rounded-sm px-1.5 py-0.5 leading-none extension:bg-token-foreground/10 electron:bg-token-list-hover-background/60">%date</span> uniquement si une première synchronisation a déjà été réalisée

### **Point d'attention**

Le module utilise des drivers python afin de se connecter aux différents système de gestion de base de données. Veuillez donc vous assurer d'avoir une version de votre système géré pas un des drivers suivant.

**SQLAlchemy (Python)**

1. Python 3.x: 3.7 ou plus récent

**PyMySQL (MySQL)**

1. Python 3.x: 3.7 ou plus récent
2. Mysql 5.7 ou plus récent
3. MariaDB 10.4 ou plus récent

**Pymssql (SQL Server)**

1. Python 3.x: 3.7 ou plus récent
2. FreeTDS 1.4.10 ou plus récent
3. Cython 3.0.7 ou plus récent
4. Microsoft SQL Server 2005 ou plus récent

<dl class="field-list simple" id="bkmrk-charge-syst%C3%A8me-le-ra"><dt class="field-odd">**Charge système**

</dt><dd class="field-odd">Le rafraîchissement des tables créées étant géré par des tâches planifiées (crons), l’activation d’un grand nombre de crons peut augmenter la charge système et ralentir le serveur. Il est donc recommandé d’éviter l’exécution simultanée de nombreux crons ou de configurer des fréquences de rafraîchissement trop élevées.

</dd></dl>**Modification de schéma**

<dl class="field-list simple" id="bkmrk-dans-le-cas-o%C3%B9-vous-"><dd class="field-odd">Dans le cas où vous repassez un enregistrement au brouillon afin de modifier son schéma (suppression ou ajout de colonnes), les vues personnalisées créées ainsi que les actions serveur utilisant le modèle généré peuvent devenir obsolètes. Cela peut notamment être dû à un changement de nom d’un champ ou à sa suppression.

</dd></dl>