WindevExpert

Vidéo 24 • Évolution & Maintenance

Migration de Schéma :
L'ADN Evolutif

Comment mettre à jour les tables SQL de 500 clients à distance sans perdre une seule donnée.

Le Drame de l'Incompatibilité

Le Code (v2.0)

Votre nouveau code veut enregistrer le champ Points_Fidélité.

La Base Locale (v1.0)

Mais le fichier physique sur le PC du client ne possède pas cette colonne.

CRASH : "Rubrique inconnue dans le fichier"

La Solution : Auto-Migration

"Au démarrage, l'application compare sa structure interne avec la structure physique. S'il manque quelque chose, elle 'rénove' le fichier instantanément."

Laboratoire : Mutation de la Table Client

Blueprint Cloud (v2.0)

IDClientGUID
NomTEXT
Points_Fid NEW
Base de Données Locale (Poste 01)
TABLE_CLIENT STRUCTURE v1.0
IDClient7F4D...
NomJean Dupont

Le Secret : Le Numéro de Version

L'Algorithme de Décision

Chaque fois que vous changez l'analyse dans WinDev, vous devez incrémenter une variable nVersionSchema dans votre code.

  • Lire version actuelle de la DB physique.
  • Si DB_Ver < Code_Ver :
  • Lancer la mutation structurelle.
Metadata Table
SCHEMA_VER = 2.0

La Puissance de HModifieStructure

// Procédure de mise à jour automatique
SI LitVersionBase() < VERSION_APPLI_CHEVRON ALORS
    
    // 1. On informe l'utilisateur
    FenAffichageDélai(100, "Mise à jour de la structure de données...")
    
    // 2. L'INSTRUCTION MAGIQUE DE WINDEV
    // Cette fonction ajoute les colonnes manquantes et garde les données !
    HModifieStructure(*, hmsTout)
    
    // 3. On enregistre le nouveau numéro de version
    EcritVersionBase(VERSION_APPLI_CHEVRON)
    
FIN