IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Quelle stratégie pour la modification de structure ? [Généralités]


Sujet :

WinDev

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 315
    Points : 202
    Points
    202
    Par défaut Quelle stratégie pour la modification de structure ?
    Bonjour,

    je travaille avec des bases MySQL dont je souhaite gérer la mise à jour par des dépôts de scripts .sql contenant les instructions nécessaires dans des répertoires dédiés qu'ira scruter une appli qui tour en tâche de fond afin de les exécuter sur la base associée (code d'initialisation du projet).

    J'ai une base de test que je tiens à jour et que je synchronise avec l'analyse de mon projet, et des bases de production ayant la même structure donc devant recevoir les instructions de modification (ALTER TABLE...) via des fichiers .sql donc, que j'ai appliqué à ma base de test.

    Imaginons que la version de mon analyse compilée soit la v1.2 (synchronisée sur ma base de test) et que la version précédente dans mon application déployée soit la v1.1 (donc n'ayant pas encore les modifications générées dans la v1.2) :
    Arrêtez moi si je dis un bêtise mais :
    Au moment du déploiement, est-ce que je ne risque pas d'avoir un message d'erreur m'indiquant que la version de l'analyse de l'application nouvellement déployée diffère, générant une erreur fatale ? En effet pour mettre à jour la structure de la base mySQL via le fichier .sql je dois m'y connecter et à ce moment la couche logique de l'analyse est vérifiée (sauf erreur de ma part), ainsi la version déployée étant la v1.2, elle va différer de la structure de la base précédente v1.1 générant une erreur et empêchant de continuer le traitement, donc de mettre à jour l'analyse déployée par le script (c'est un peu le serpent qui se mord la queue non ?)

    Comment gérer cette mise à jour de base dans ce cas ?

    Merci

  2. #2
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 535
    Points
    2 535
    Par défaut
    Je ne suis pas sûr que ça génère une erreur avec les tables autres que HF.

    Sinon quand on fait ça en HF, on fait un houvre qui déclenche une exception récupérable par "quand exception dans" et à ce moment on lance le traitement permettant de mettre à jour les tables. Il est préférable de tester le numéro d'erreur lors de l'exception pour être sûr que c'est bien bien une erreur liée à la structure.

  3. #3
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 379
    Points : 4 496
    Points
    4 496
    Par défaut
    Bonjour

    Il n'y a pas de contrôle à ce niveau

    ça génèrera juste une erreur (à intercepter) si tu accèdes à un fichier et que sa structure n'est pas la même dans l'analyse

  4. #4
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 535
    Points
    2 535
    Par défaut
    Citation Envoyé par hpascal Voir le message
    Bonjour

    Il n'y a pas de contrôle à ce niveau

    ça génèrera juste une erreur (à intercepter) si tu accèdes à un fichier et que sa structure n'est pas la même dans l'analyse
    Si ça génère une erreur, cela signifie qu'il y a un contrôle

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 315
    Points : 202
    Points
    202
    Par défaut
    Merci pour vos réponses.

    Donc si je me contente de me connecter via HChangeConnexion ou SQLChangeConnexion, tant que je ne tente pas de lire/écrire dans le fichier je n'aurai pas d'erreur ?

  6. #6
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 771
    Points
    1 771
    Par défaut
    Citation Envoyé par DelphiManiac Voir le message
    Si ça génère une erreur, cela signifie qu'il y a un contrôle
    de souvenir il me semble qu'il n'y a pas de contrôle windev...
    Si des rubriques on étaient ajoutées pour un fichier dans mysql et pas dans windev il n'y a pas de problème

    Par contre si on supprime des rubriques dans mysql et pas dans windev alors là mysql crie... est c'est normal...

  7. #7
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 535
    Points
    2 535
    Par défaut
    Citation Envoyé par cladoo Voir le message
    Merci pour vos réponses.

    Donc si je me contente de me connecter via HChangeConnexion ou SQLChangeConnexion, tant que je ne tente pas de lire/écrire dans le fichier je n'aurai pas d'erreur ?
    C'est le comportement que l'on a avec l'accès HF (Classic ou Serveur)

  8. #8
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 771
    Points
    1 771
    Par défaut
    Citation Envoyé par cladoo Voir le message
    Merci pour vos réponses.

    Donc si je me contente de me connecter via HChangeConnexion ou SQLChangeConnexion, tant que je ne tente pas de lire/écrire dans le fichier je n'aurai pas d'erreur ?
    c'est ça...
    Tu peux même lire/écrire tant que tu n'invoques pas des rubriques suprimées dans mysql et pas dans l'analyse windev. Mais si c'est la cas tu ne risques rien, tu auras juste une erreur mysql...

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 315
    Points : 202
    Points
    202
    Par défaut
    Ok merci.

    Du coup en testant la mise à jour de cette manière, j'ai remarqué que si plusieurs instructions sont dans le même fichier .SQL, si l'une des instructions autre que la première contient une erreur, ni HExecuteRequêteSQL, ni SQLExec ne renvoient d'erreur, le première "faisant fois" pour les autres (alors que toutes les instructions sont bien exécutées)

    Il convient donc d'encapsuler les différentes instructions du fichier dans une transaction en les exécutant toutes séparément et en testant chaque retour.

    Bref ça a l'air de marcher.

  10. #10
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 379
    Points : 4 496
    Points
    4 496
    Par défaut
    Citation Envoyé par DelphiManiac Voir le message
    Si ça génère une erreur, cela signifie qu'il y a un contrôle
    On est d'accord, quand je disais pas de contrôle je parlais du démarrage de l'application.
    Mais comme tu le dis plus loin c'est pareil pour HF

    Sauf qu'en général pour HF il y a souvent un HCréationSiInexistant en début de projet qui se charge de rouspéter si la structure n'est pas bonne

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Quelle stratégie pour mon projet ?
    Par patguits dans le forum Services Web
    Réponses: 0
    Dernier message: 09/09/2013, 14h49
  2. Réponses: 3
    Dernier message: 23/05/2011, 11h39
  3. Quelle stratégie pour l'authentification ?
    Par Invité dans le forum Struts 1
    Réponses: 8
    Dernier message: 19/02/2008, 16h29
  4. Quelle stratégie pour coupler Hibernate et Swing ?
    Par sethys dans le forum Hibernate
    Réponses: 5
    Dernier message: 09/10/2007, 20h38
  5. Réponses: 4
    Dernier message: 04/04/2006, 20h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo