Le mardi 31 octobre 2006 à 22:10 +0100, Cyril Besot a écrit : > paul POULAIN a écrit : > > Thomas Despoix a écrit : > >> Ce qui m'étonne énormément c'est qu'on applique à chaque update, on > >> applique le script. > >> Ca me parait louche : j'imagine mal un ALTER TABLE `table` ADD > >> `field` fait plusieurs fois... > >> > >> Any clue ? > > > > yes : -f ... > > ca n'arrete pas le script même si l'alter plante, ce qui est le cas > > lorsqu'on le tente 2 fois. Donc il continue comme si de rien n'était ;-) > > > Vous avez probablement raison mais j'ai toujours fait comme ça et *pour > l'instant*, ça fonctionne. Je ne vois pas trop le problème si o ajoute > un champ : s'il existe, ça peut renvoyer une erreur mais on s'en fout. > Et s'il n'existe pas, il le crée. Ce n'est pas très propre, il n'y a > aucun contrôle mais ça n'a pas trop de raison de ne pas fonctionner > (mais bon, on backup qd même ;)). > Je suis preneur d'un meilleur script toutefois :)
Dépendant des systèmes de bases de données, on peut faire un select sur le champ pour voir s'il existe, faire un alter table if not exists (pas certain pour celui-là) ou d'autres vérifications, mais le principe est toujours le même. Si ça fonctionne naturellement (si la vérification est incluse dans le système de bases de données), ça représente du travail supplémentaire de vérifier avant d'exécuter, et au final c'est probablement moins efficace en terme d'instructions de vérifier avant l'opération. Comme les scripts d'upgrade ne s'exécutent de toute façon pas très souvent, ça ne vaut pas vraiment la peine d'y travailler longtemps. Si ça marche... Mais c'est vrai que c'est plus "propre" de vérifier d'abord... Yannick _______________________________________________ Dolibarr-user mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/dolibarr-user
